Agregar registro inseguro a Docker

107

Tengo una ventana acoplable 1.12 ejecutándose en CentOS. Estoy tratando de agregarle un registro inseguro y las cosas mencionadas en la documentación simplemente no funcionan. El sistema usa systemdasí que creé un /etc/systemd/system/docker.service.d/50-insecure-registry.confarchivo.

$ cat /etc/systemd/system/docker.service.d/50-insecure-registry.conf
[Service]
Environment='DOCKER_OPTS=--insecure-registry="hostname.cloudapp.net:5000"'

Después de cargar el demonio y reiniciar el servicio Docker, systemd muestra que la variable de entorno está ahí

$ sudo systemctl show docker | grep Env
Environment=DOCKER_OPTS=--insecure-registry="hostname.cloudapp.net:5000"

Pero cuando ejecuto docker infono veo ese registro inseguro agregado

$ docker info
........
Registry: https://index.docker.io/v1/
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
Insecure Registries:
    127.0.0.0/8

Empujar imágenes para hostaneme.cloudapp.netfallar con

Pushing application     (hostname.cloudapp.net:5000/application:latest)...
The push refers to a repository     [hostname.cloudapp.net:5000/mozart_application]
ERROR: Get https://hostname.cloudapp.net:5000/v1/_ping: http: server gave HTTP response to HTTPS client

¿Hay algo que se pueda hacer? Me estoy perdiendo de algo ?

ACTUALIZAR

Resolvió el problema agregando un archivo /etc/docker/daemon.jsoncon el siguiente contenido

{
    "insecure-registries" : [ "hostname.cloudapp.net:5000" ]
}

Y luego reinicia Docker

sudo systemctl daemon-reload
sudo systemctl restart docker

Después de eso, el registro inseguro hostname.cloudapp.net:500funciona.

EvgeniySharapov
fuente
4
Si bien alguien se le adelantó en este caso (después de darle un generoso período de gracia), este habría sido un caso excelente para una auto-respuesta.
BlackVegetable
2
¡excelente! Recibí este mensaje de error mientras "oc cluster up" con Openshift javamonamour.org/2017/12/docker-insecure-registry.html y su solución lo resolvió.
Pierluigi Vernetto
2
Sé que pidió esto explícitamente en relación con CentOS en su pregunta, pero para cualquiera que aterrice aquí en busca de una solución macOS como lo hice yo, se puede hacer a través de la GUI ahora, como se menciona en la respuesta a esta pregunta .
anotherdave

Respuestas:

135

(Copiando la respuesta de la pregunta)

Para agregar un registro de Docker inseguro, agregue el archivo /etc/docker/daemon.jsoncon el siguiente contenido:

{
    "insecure-registries" : [ "hostname.cloudapp.net:5000" ]
}

y luego reinicie Docker.

Matt Hulse
fuente
3
Creo que esa es la solución correcta para debian-likes. En los me gusta de Red Hat, desea agregarlo /etc/sysconfig/dockercomo una de las opciones, por ejemplo, desde una instalación de Openshift: OPTIONS='--insecure-registry=172.30.0.0/16 --others [...]' En los me gusta de Suse, no lo sé.
erikbwork
En DigitalOcean, la imagen de Docker de 1 clic todavía piensa que el uso usa DOCKER_OPTS frente a la daemon.jsonversión del archivo. ¡Gracias!
Eric Pugh
@erikbwork En Fedora 28 con Docker 1.13.1 desde los repositorios de paquetes predeterminados, el enfoque con /etc/docker/daemon.jsonfunciona bien.
nodo
7
no se puede reiniciar la ventana acoplable después de crear este daemon.json, mostrando el error: Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details. @matt
AATHITH RAJENDRAN
Gracias, funciona. En el caso de mayo sin puerto porque el puerto 80 {"insecure-registries": ["hostname.cloudapp.net"]}
Hernaldo Gonzalez
16

Crear el archivo /etc/docker/daemon.json y agregar el contenido a continuación y luego reiniciar la ventana acoplable en CentOS 7 resolvió el problema.

{
    "insecure-registries" : [ "hostname.cloudapp.net:5000" ]
}
Soleado
fuente
12

La solución con el /etc/docker/daemon.jsonarchivo no me funcionó en Ubuntu.

Pude configurar los registros inseguros de Docker en Ubuntu proporcionando opciones de línea de comando al demonio de Docker en el /etc/default/dockerarchivo, por ejemplo:

# /etc/default/docker    
DOCKER_OPTS="--insecure-registry=a.example.com --insecure-registry=b.example.com"

De la misma manera se puede utilizar para configurar un directorio personalizado para el almacenamiento de volúmenes e imágenes de la ventana acoplable, servidores DNS predeterminados, etc.

Ahora, después de que el demonio de Docker se haya reiniciado (después de la ejecución sudo service docker restart), la ejecución docker infomostrará:

Insecure Registries:
  a.example.com
  b.example.com
  127.0.0.0/8
Nikita
fuente
1

Para mí, la solución fue agregar el registro aquí:

/ etc / sysconfig / docker-registries

DOCKER_REGISTRIES=''
DOCKER_EXTRA_REGISTRIES='--insecure-registry  b.example.com'
usuario3598726
fuente
0

Si ya tiene un archivo config.json, entonces el archivo final debería verse así ... Aquí registry.myprivate.comestá el que me estaba dando problemas.

{ "auths": { "https://index.docker.io/v1/": { "auth": "xxxxxxxxxxxxxxxxxxxx==" }, "registry.myprivate.com": { "auth": "xxxxxxxxxxxxxxxxxxxx=" } }, "HttpHeaders": { "User-Agent": "Docker-Client/19.03.8 (linux)" }, "insecure-registries" : ["registry.myprivate.com"] }

Gajendra D Ambi
fuente
0

Me encontré con un tipo de problema similar después de configurar el registro privado interno local de JFrog Docker en Amazon Linux.

LO siguiente que hice para resolver el problema:

Se agregó "--insecure-registry xx.xx.xx.xx: 8081" modificando la variable OPTIONS en el archivo / etc / sysconfig / docker:

OPTIONS="--default-ulimit nofile=1024:40961 --insecure-registry hostname:8081"

Luego reinició la ventana acoplable.

Luego pude iniciar sesión en el registro de Docker local usando:

docker login -u admin -p password hostname:8081
usuario3005352
fuente