Red de conocimiento informático - Material del sitio web - Cómo reflejar una imagen desde la ventana acoplable a un registro privado

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

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

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í

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>

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