Por defecto, si doy un comando:
sudo docker pull ruby:2.2.1
se extraerá del sitio oficial de docker.io de forma predeterminada.
Pulling repository docker.io/library/ruby
¿Cómo lo cambio a mi registro privado? Eso significa que si emito
sudo docker pull ruby:2.2.1
extraerá de mi propio registro privado, el resultado es algo como:
Pulling repository my_private.registry:port/library/ruby
docker
docker-registry
mainframer
fuente
fuente
Respuestas:
ACTUALIZACIÓN: Siguiendo su comentario, actualmente no es posible cambiar el registro predeterminado, consulte este problema para obtener más información.
Debería poder hacer esto, sustituyendo el host y el puerto por los suyos:
Si el servidor es remoto / tiene autenticación, es posible que deba iniciar sesión en el servidor con:
Luego corriendo:
fuente
docker pull <YOUR-DOMAIN>:8080/test-image
estaba bien. Pero lo que quiero esdocker pull test-image
, que es sin especificar el DOMINIO y el puerto y sin iniciar sesión.@scopes
en npm para introducir nuevos espacios de nombres sin entrar en conflicto con los existentes. Tener el nombre de host del registro incluido en el nombre de la imagen dificulta el almacenamiento en caché / proxy / bloqueo del registro dentro de una empresa o proyecto. Esto lo describe bien: informit.com/articles/article.aspx?p=2464012&seqNum=3Resulta que esto es realmente posible, pero sin usar la versión genuina de Docker CE o EE.
Puede usar la bifurcación de la ventana acoplable de Red Hat con la marca '--add-registry' o puede construir la ventana acoplable desde la fuente usted mismo con registro / config.go modificado para usar su propio índice / espacio de nombres de registro predeterminado codificado.
fuente
--add-registry
dejó de funcionar.--block-registry index.docker.io
opción para deshacerse del registro predeterminado.--add-registry
solicitud de extracción fue no fusionada . Esta característica fue finalmente rechazada ( # 11816 ).si está utilizando la distribución de fedora, puede cambiar el archivo
Agregar dominio docker.io
fuente
--add-registry
. La función no será adoptada por Estibador en solicitud de extracción fue no fusionado . (También la función fue finalmente rechazada ( # 11816 ).Parece que no será compatible debido a la fragmentación que crearía dentro de la comunidad (es decir, dos usuarios obtendrían diferentes imágenes extraídas
ubuntu:latest
). Simplemente tienes que agregar el host delante del nombre de la imagen. Vea este número de github para unirse a la discusión.(Tenga en cuenta que esto no pretende ser un comentario obstinado, solo un resumen muy breve de la discusión que se puede seguir en el problema de github mencionado).
fuente
Intenté agregar las siguientes opciones en /etc/docker/daemon.json. (Usé CentOS7)
después de eso, reinició el demonio de la ventana acoplable. Y funciona sin docker.io. Espero que esta persona sea de ayuda.
fuente
--add-registry
solicitud de extracción fue no fusionada .La posición oficial de Docker se explica en el número 11815 :
Red Hat tenía una implementación específica que lo permitía (ver anwser, pero fue rechazado por Docker upstream projet). Se basó en el
--add-registry
argumento, que se estableció en/etc/containers/registries.conf
RHEL / CentOS 7.fuente
Anteriormente, esto se podía lograr usando
DOCKER_OPTS
el/etc/default/docker
archivo de configuración que funcionaba en Ubuntu 14:04 y tenía algunos problemas en Ubuntu 15:04. No estoy seguro de si esto se ha solucionado.La siguiente línea debe ir al archivo
/etc/default/docker
en el host que ejecuta el demonio de la ventana acoplable. El cambio apunta a que el registro privado está instalado en su red local. Nota: deberá reiniciar el servicio de la ventana acoplable seguido de este cambio.fuente
Estoy agregando la respuesta original dada por Guy, que todavía es válida hoy (próximamente en 2020).
Anular el registro de Docker predeterminado, como lo haría con
maven
, en realidad no es una buena práctica.Al usar
maven
, extrae artefactos del Repositorio Central de Maven a través de su sistema de administración de repositorio local que actuará como un proxy. Estos artefactos son librerías (jar) simples y sin procesar y es poco probable que envíe jarras con el mismo nombre.Por otro lado, las imágenes de Docker son entornos completamente operativos, ejecutables, y tiene total sentido extraer una imagen de Docker Hub, modificarla y enviar esta imagen a su sistema de administración de registro local con el mismo nombre, porque es exactamente lo que dice su nombre, solo en el contexto de su empresa. ¡En este caso, la única distinción entre las dos imágenes sería precisamente su trayectoria!
Por tanto, es necesario establecer la siguiente regla: el prefijo de una imagen indica su origen; de forma predeterminada, si una imagen no tiene prefijo, se extrae de Docker Hub.
fuente
No he probado, pero tal vez secuestrar el proceso de resolución de DNS mediante la adición de una línea en
/etc/hosts
parahub.docker.com
o algo similar (docker.io
?) Podría funcionar?fuente