Cómo reflejar una imagen desde la ventana acoplable a un registro privado
Docker se está volviendo cada vez más popular. Si su equipo está listo para comenzar a usar Docker, entonces un almacén privado es esencial, en primer lugar, puede ayudarlo a acelerar la extracción de imágenes del servidor. En segundo lugar, también puede ayudarle a almacenar imágenes privadas. Este artículo presenta principalmente cómo realizar copias de seguridad de imágenes abiertas desde un servidor público a un servidor privado local.
Este artículo utiliza la imagen de ubuntu en el índice como ejemplo
Descarga la imagen de ubuntu del servidor de índice oficial
docker pull ubuntu
Ver imágenes existentes
REPOSITORIO
ETIQUETA
ID DE IMAGEN
CREAR
TAMAÑO VIRTUAL
ubuntu 13.10 9f676bd305a4 Hace 5 semanas 178 MB
ubuntu saucy 9f676bd305a4 Hace 5 semanas 178 MB
ubuntu raring eb601b8965b8 Hace 5 semanas 166.5 MB
ubuntu 13. 04 eb601b8965b8 Hace 5 semanas 166.5 MB
ubuntu 12.10 5ac751e8d623 Hace 5 semanas 161 MB
ubuntu quantal 5ac751e8d623 Hace 5 semanas 161 MB
ubuntu 10.04 0 5
ubuntu preciso 9cd978db300e Hace 5 semanas 204,4 MB
En términos generales, usaremos la última versión de ubuntu. Puede encontrar que varias TAG corresponden a la misma imagen y la Etiqueta es solo una. nombre.
Etiquete la imagen que debe enviarse al registro privado
etiqueta de la ventana acoplable 9cd978db300e rd-server:5000/ubuntu
Podemos ejecutar imágenes de la ventana acoplable para ver el efecto
p>
REPOSITORIO
TAG
ID DE IMAGEN
CREADO
TAMAÑO VIRTUAL
ubuntu 13.10 9f676bd305a4 Hace 5 semanas 178 MB
ubuntu saucy 9f676bd305a4 Hace 5 semanas 178 MB
ubuntu raring eb601b8965b8 Hace 5 semanas 166.5 MB
ubuntu 13.04 eb601b8965b8 Hace 5 semanas 166.5 MB
ubuntu 12.10 5ac751e8d623 Hace 5 semanas 161 MB
ubuntu quantal 5ac751e8d623 Hace 5 semanas 161 MB
ubuntu 10.04 ea540 5 Hace semanas 180,8 MB
ubuntu lucid 9cc9ea5ea540 Hace 5 semanas 180,8 MB
ubuntu 12.04 9cd978db300e Hace 5 semanas 204,4 MB
ubuntu último 9cd978db300e Hace 5 semanas 204,4 MB
ubuntu precision 9cd9 78db300e Hace 5 semanas 204,4 MB
rd-server:5000/ubuntu último 9cd978db300e Hace 5 semanas 204,4 MB
Empuje ubuntu al registro privado p>
docker push rd- server:5000/ubuntu
¿Cómo reflejar todas las ramas de ubuntu en su propio almacén privado?
1. Primero etiquete, etiquete la versión requerida y luego envíela.
La declaración probablemente se vea así:
etiqueta docker eb601b8965b8 rd-server :5000 /ubuntu:raring
etiqueta acoplable eb601b8965b8 rd-server:5000/ubuntu:13.04
etiqueta acoplable 9f676bd305a4 rd-server:5000/ubuntu:saucy
docker etiqueta 9f676bd305a4 rd-server:5000/ubuntu:13.10
etiqueta acoplable 9cd978db300e rd-server:5000/ubuntu:precise
etiqueta acoplable 9c
d978db300e rd-server:5000/ubuntu:latest
etiqueta acoplable 9cd978db300e rd-server:5000/ubuntu:12.04
etiqueta acoplable 9cc9ea5ea540 rd-server:5000/ubuntu:lucid p>
etiqueta acoplable 9cc9ea5ea540 rd-server:5000/ubuntu:10.04
etiqueta acoplable 5ac751e8d623 rd-server:5000/ubuntu:quantal
etiqueta acoplable 5ac751e8d623 rd-server: 5000/ubuntu:12.10
Comience a enviar
docker push rd-server:5000/ubuntu
Si la última línea del contenido devuelto se ve así p>
2014/03/14 08:22:14 push: }
Por favor, ejecútelo repetidamente, sí, no lo dude, por favor siga ejecutándolo en bucle
docker pull rd-server:5000/ubuntu
Hasta que las palabras push: } ya no aparezcan
No sé si esto es un error en Docker o si es diseñado de esta manera. Debe enviarse varias veces. Solo entonces se puede enviar la etiqueta completa al registro privado. De lo contrario, cuando el cliente se descarga, siempre indicará que no se pueden encontrar algunas imágenes. Sea el diseño, porque la imagen de la ventana acoplable es relativamente grande y un repositorio tendrá muchos bloques. Los archivos solo insertan un bloque cada vez. Bien, eso es todo para adivinar. Aún tienes que hacer el trabajo, así que escribe un script. para resolver el problema manual.
#!/bin/sh
#
#Copyright (c) 2014 ZhengXujin xujinzheng@gmail.com
# p>
#
p>
server="127.0.0.1:5000"
index_repo_name="nombre de usuario/ubuntu"
private_repo_name= "ubuntu"
echo "\ n"
echo " ## ."
echo " ## ## ## ==="
echo " ## ## ## ## ==="
echo " /"""""""""""""\___/ ==="
echo " ~~~ { ~~ ~~~~ ~~~ ~~~~ ~~ ~ / ===- ~~~"
echo " \______ o __ /"
echo " \ \__/"
echo " \____\______/"
echo "\n"
idx=0
is_continue= 1
imágenes acoplables|grep -q "$server/$private_repo_name"
if [[ $? -ne 0 ]] ; entonces
imágenes acoplables| grep $index_repo_name|awk -F" " '{printf("etiqueta acoplable %s %s/%s:%s\n",$3,"'$servidor'" ,"'$private_repo_name'",$2)}' |bash
fi
mientras [ $is_continue -eq 1 ]
do
docker push $server/$private_repo_name
is_continue=$?
let idx=$idx+1
echo "$(tput setaf 1)continue push, $idx times push. $(tput sgr 0 )"
hecho
Obtener la imagen de la biblioteca privada del cliente
docker pull rd- server:5000/ubuntu
u obtener una determinada versión de ubuntu
docker pull -t 13.04 rd-server:5000/ubuntu
Al enviar desde el público biblioteca a la biblioteca privada, puede encontrar algunas dependencias. La imagen no se envía completamente al servidor y habrá un error al extraer la imagen. El mensaje es el siguiente
eb601b8965b8: Error al extraer la imagen. (13.04) de rd-server:5000/ubuntu, Error del servidor: 400 al intentar recuperar el historial remoto para eb601b9cd978db300e: Descarga completa
Ejecute la siguiente instrucción repetidamente hasta que se complete
Cargue completamente todas las imágenes
docker push rd-server:5000/ubuntu
Por supuesto, no todos los problemas como este se deben a una carga incompleta. También puede deberse a la extracción. La red del cliente no es buena. Si el mismo problema ocurre repetidamente, debe considerar el método anterior.
Si ocurren los siguientes problemas, cambie directamente el nombre del host a IP para extraer la biblioteca.
Punto final de registro no válido: obtenga http://rd-server:5000/v1/_ping: marque tcp: busque rd-server: no existe tal host
Por ejemplo
docker pull 172.16.1.88:5000/ubuntu