No se pueden extraer / enviar imágenes después de actualizar la ventana acoplable a 1.12

86

El registro privado funcionó bien según la ventana acoplable 1.10.3, pero no puedo extraer / enviar imágenes después de que la ventana acoplable se actualizó a la 1.12.0.

Modifiqué / etc / sysconfig / docker como:

OPTIONS='--selinux-enabled=true --insecure-registry=myip:5000'

o

OPTIONS='--selinux-enabled=true --insecure-registry myip:5000'

pero cuando ejecuto pull / push, recibí este error:

$ docker pull myip:5000/cadvisor
Using default tag: latest
Error response from daemon: Get https://myip:5000/v1/_ping: http: server gave HTTP response to HTTPS client

cuando cambio de nuevo la ventana acoplable a 1.10.3, todavía funciona bien como se muestra a continuación:

$ docker pull myip:5000/cadvisor
Using default tag: latest
Trying to pull repository myip:5000/cadvisor ... 
latest: Pulling from myip:5000/cadvisor
09d0220f4043: Pull complete 
a3ed95caeb02: Pull complete 
151807d34af9: Pull complete 
14cd28dce332: Pull complete     
Digest:
sha256:33b6475cd5b7646b3748097af1224de3eee3ba7cf5105524d95c0cf135f59b47
Status: Downloaded newer image for myip/cadvisor:latest

A continuación se enumeran algunos datos relativos:

docker version
Client:
Version: 1.12.0
API version: 1.24
Go version: go1.6.3
Git commit: 8eab29e
Built:

OS/Arch: linux/amd64

Server:
Version: 1.12.0
API version: 1.24
Go version: go1.6.3
Git commit: 8eab29e
Built:

OS/Arch: linux/amd64

docker info
Containers: 4
Running: 1
Paused: 0
Stopped: 3
Images: 241
Server Version: 1.12.0
Storage Driver: devicemapper
Pool Name: docker-253:0-6809-pool
Pool Blocksize: 65.54 kB
Base Device Size: 107.4 GB
Backing Filesystem: xfs
Data file: /dev/loop0
Metadata file: /dev/loop1
Data Space Used: 5.459 GB
Data Space Total: 107.4 GB
Data Space Available: 34.74 GB
Metadata Space Used: 9.912 MB
Metadata Space Total: 2.147 GB
Metadata Space Available: 2.138 GB
Thin Pool Minimum Free Space: 10.74 GB
Udev Sync Supported: true
Deferred Removal Enabled: false
Deferred Deletion Enabled: false
Deferred Deleted Device Count: 0
Data loop file: /var/lib/docker/devicemapper/devicemapper/data
WARNING: Usage of loopback devices is strongly discouraged for production use. Use '--storage-opt dm.thinpooldev' to specify a custom block storage device.
Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
Library Version: 1.02.107-RHEL7 (2016-06-09)
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: host overlay null bridge
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: seccomp
Kernel Version: 3.10.0-229.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 24
Total Memory: 62.39 GiB
Name: server_3
ID: TITS:BL4B:M5FE:CIRO:5SW6:TVIV:HW36:J7OS:WLHF:46T6:2RBA:WCNV
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): true
File Descriptors: 21
Goroutines: 32
System Time: 2016-08-02T10:33:06.414048675+08:00
EventsListeners: 0
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

docker exec <registry-container> registry -version
registry github.com/docker/distribution v2.2.1

Después de reiniciar el demonio de la ventana acoplable en modo de depuración, los registros del demonio al reproducir mi problema se enumeran a continuación:

DEBU[0794] Calling POST /v1.24/images/create?fromImage=10.10.10.40%3A5000%2Fcadvisor&tag=latest 
DEBU[0794] hostDir: /etc/docker/certs.d/10.10.10.40:5000 
DEBU[0794] hostDir: /etc/docker/certs.d/10.10.10.40:5000 
DEBU[0794] Trying to pull 10.10.10.40:5000/cadvisor from https://10.10.10.40:5000 v2 
WARN[0794] Error getting v2 registry: Get https://10.10.10.40:5000/v2/: http: server gave HTTP response to HTTPS client 
ERRO[0794] Attempting next endpoint for pull after error: Get https://10.10.10.40:5000/v2/: http: server gave HTTP response to HTTPS client
DEBU[0794] Trying to pull 10.10.10.40:5000/cadvisor from https://10.10.10.40:5000 v1 
DEBU[0794] hostDir: /etc/docker/certs.d/10.10.10.40:5000
DEBU[0794] attempting v1 ping for registry endpoint https://10.10.10.40:5000/v1/
DEBU[0794] Fallback from error: Get https://10.10.10.40:5000/v1/_ping: http: server gave HTTP response to HTTPS client 
ERRO[0794] Attempting next endpoint for pull after error: Get https://10.10.10.40:5000/v1/_ping: http: server gave HTTP response to HTTPS client
ERRO[0794] Handler for POST /v1.24/images/create returned error: Get https://10.10.10.40:5000/v1/_ping: http: server gave HTTP response to HTTPS client 
DEBU[1201] clean 2 unused exec commands

Además, solo ejecuto un comando simple para iniciar el registro privado para la prueba, cualquier otra cosa es predeterminada:

docker run -d -p 5000:5000 --restart=always --name registry -v 'pwd'/data:/var/lib/registry registry:2

No se configura ningún proxy. En resumen, es solo un entorno de muestra silencioso para la prueba.

yuxiaoyu
fuente
bueno, yo también enfrento el mismo error, pero lo extraño es que no tengo el archivo / etc / sysconfig / docker en RHEL 7, ¿conoce algún archivo similar que pueda encontrar? ¿Cuáles son los contenidos de este archivo acoplable? Gracias.
sai
Este archivo incluye algunas opciones si desea cambiar la forma en que se ejecuta el demonio docker. No sé la ruta exacta en RHEL7. Pero si ejecuta con el comando "$ sudo Locate docker", encontrará el archivo en algún lugar
yuxiaoyu
Terminé eliminando /etc/docker/daemon.json y reiniciando el servicio de Docker, parece que estaba anulando lo que estaba configurado en / etc / sysconfig / docker
Max Barrass
Para los usuarios de MacOS, vea esta respuesta: stackoverflow.com/a/39492340/706521
Adrian Forsius

Respuestas:

222

Tuve el mismo problema.

Esto me ayudó:

  • Cree o modifique /etc/docker/daemon.json en la máquina cliente

    { "insecure-registries":["myregistry.example.com:5000"] }

  • Reiniciar el demonio de la ventana acoplable

    sudo /etc/init.d/docker restart

bojtib
fuente
7
En mi caso, uso Ubuntu 16.04 y / etc / default / docker (donde estaba mi configuración) es específico de advenedizo. 16.04 usa systemd. /etc/docker/daemon.json es una configuración independiente de la plataforma. github.com/docker/docker/issues/23512 github.com/docker/docker/issues/23228
bojtib
1
Aquí está la documentación de la forma de registro de configuración insegura docs.docker.com/registry/insecure
Ivailo Bardarov
6
Cree el /etc/docker/daemon.jsonarchivo si no está presente. Específico paraUbuntu 16.04
deepdive
¿Alguien tiene alguna información para MacOS?
Adrian Forsius
esto me ayudó cuando instalé Docker V17.x. De alguna manera no funcionó cuando tenía docker.io v1.x
node_man
23

Para usuarios de Windows

Agregue el registro local aquí y aplique:

ingrese la descripción de la imagen aquí

kogoia
fuente
7

Para usuarios de Mac: actualice las preferencias de la ventana acoplable con el icono (ventana acoplable) en la barra superior

Preferencias -> Daemon -> Registro inseguro [Haga clic en el signo (+)] -> agregar: puerto

presione el botón "Aplicar y reiniciar" en la parte inferior

Imagen que muestra la ventana de preferencias de Docker

Raman Garg
fuente
6

También tuve el mismo problema y seguí los pasos a continuación:

1. Crear archivo

 vi /etc/docker/daemon.json

2. Agregue el contenido a continuación

{
        "insecure-registries":["192.168.1.142:5000"]
 }

3.Reiniciar Docker

service docker restart
Hasitha
fuente
3

Si está utilizando Windows y obtiene este error, debe crear un archivo aquí: "C:\ProgramData\docker\config\daemon.json"

y haz lo mismo que @Bspec mencionado anteriormente:

{"registros-inseguros": ["myregistry.example.com:5000"]}

Luego reinicie la ventana acoplable usando los comandos de PowerShell:

Stop-Service docker
Start-Service docker
Shachar Hamuzim Rajuan
fuente
2

modificar "/etc/docker/daemon.json" no funcionó para mí.

Ponerlo en "/ etc / sysconfig / docker" como se muestra a continuación, funcionó.

INSECURE_REGISTRY = "- registro inseguro 192.168.24.1:8787"

brncoguz
fuente
Gracias por mostrarnos la --insecure-registryopción. En mi caso fue incluso otro archivo /etc/systemd/system/docker.service.d/docker-options.confporque estoy usando Kubespray. Entonces, para otros: necesitas encontrar tu DOCKER_OPTSparámetro. Simplemente use esta búsqueda: a grep -ER DOCKER_OPTS /etctravés del /etcdirectorio. En mi caso concreto, para hacer efectiva la configuración que hice: systemctl daemon-reload, systemctl restart dockery ps -ef | grep dockerden Ubuntu.
laimison
1

Para empujar , agregue la IP al registro inseguro en el lado del cliente (por ejemplo, para Windows)

ingrese la descripción de la imagen aquí

Para tirar , agréguelo al lado del servidor (en este caso Ubuntu)

vim /etc/docker/daemon.json

ingrese la descripción de la imagen aquí

y luego reinicie Docker.

Sumia
fuente