Impossibile eseguire il pull / push delle immagini dopo l'aggiornamento della finestra mobile alla 1.12


86

Il registro privato ha funzionato bene sulla base della finestra mobile 1.10.3, ma non è possibile eseguire il pull / push delle immagini dopo l'aggiornamento della finestra mobile alla 1.12.0.

Avevo modificato / etc / sysconfig / docker come:

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

o

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

ma quando eseguo pull / push, ho ricevuto questo errore:

$ 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

quando cambio la finestra mobile di nuovo in 1.10.3, funziona ancora bene come di seguito:

$ 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

Di seguito sono elencate alcune informazioni relative:

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

Dopo aver riavviato il daemon docker in modalità debug, i registri del daemon durante la riproduzione del mio problema sono elencati di seguito:

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

Inoltre, eseguo un semplice comando per avviare il registro privato per il test, qualsiasi altra cosa è predefinita:

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

Nessun proxy è configurato. In sintesi, è solo un ambiente di esempio silenzioso per il test.


beh, anch'io devo affrontare lo stesso errore, ma la cosa strana è che non ho il file / etc / sysconfig / docker in RHEL 7, conosci qualche file simile che riesco a trovare? quali sono i contenuti di questo file Docker? Grazie.
sai

Questo file include alcune opzioni se si desidera modificare il modo in cui viene eseguito il demone docker. Non conosco il percorso esatto in RHEL7. Ma se esegui con il comando "$ sudo locate docker", troverai il file da qualche parte
yuxiaoyu

Ho finito per eliminare /etc/docker/daemon.json e riavviare il servizio docker, sembra che stesse sovrascrivendo ciò che era stato impostato in / etc / sysconfig /
docker

Per MacOS gli utenti vedono questa risposta: stackoverflow.com/a/39492340/706521
Adrian Forsius

Risposte:


222

Ho avuto lo stesso problema.

Questo mi ha aiutato:

  • Crea o modifica /etc/docker/daemon.json sulla macchina client

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

  • Riavvia il demone Docker

    sudo /etc/init.d/docker restart


7
Nel mio caso utilizzo Ubuntu 16.04 e / etc / default / docker (dove era la mia configurazione) è specifico per upstart. 16.04 utilizza systemd. /etc/docker/daemon.json è una configurazione indipendente dalla piattaforma. github.com/docker/docker/issues/23512 github.com/docker/docker/issues/23228
bojtib

1
Ecco la documentazione su come impostare il registro non sicuro docs.docker.com/registry/insecure
Ivailo Bardarov

6
Crea /etc/docker/daemon.jsonfile se non presente. Specifico perUbuntu 16.04
immersione profonda

Qualcuno ha qualche informazione per MacOS?
Adrian Forsius

questo mi ha aiutato quando ho installato docker V17.x. In qualche modo non funzionava quando avevo docker.io
v1.x

24

Per utenti Windows

Aggiungi qui il registro locale e applica:

inserisci qui la descrizione dell'immagine


7

Per utenti Mac: aggiorna le preferenze del docker utilizzando l'icona (docker) nella barra in alto

Preferenze -> Daemon -> Registro non sicuro [Fare clic sul segno (+)] -> aggiungi: porta

premi il pulsante "Applica e riavvia" in basso

Immagine che mostra la finestra delle preferenze di Docker


6

Ho anche avuto lo stesso problema e ho seguito i passaggi seguenti:

1. Crea file

 vi /etc/docker/daemon.json

2. Aggiungi sotto il contenuto

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

3.Riavvia Docker

service docker restart

3

Se stai usando Windows e ottieni questo errore, devi creare un file qui: "C:\ProgramData\docker\config\daemon.json"

e fai lo stesso di @Bspec menzionato sopra:

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

Quindi riavvia la finestra mobile utilizzando i comandi di PowerShell:

Stop-Service docker
Start-Service docker

2

la modifica di "/etc/docker/daemon.json" non ha funzionato per me.

Mettendolo sotto "/ etc / sysconfig / docker" come sotto, ha funzionato.

INSECURE_REGISTRY = "- registro non sicuro 192.168.24.1:8787"


Grazie per averci mostrato l' --insecure-registryopzione. Nel mio caso era anche un altro file /etc/systemd/system/docker.service.d/docker-options.confperché sto usando Kubespray. Quindi per gli altri: devi trovare il tuo DOCKER_OPTSparametro. Usa questa ricerca: grep -ER DOCKER_OPTS /etcnella /etcdirectory. Nel mio caso specifico, per effettuare le impostazioni efficaci che ho fatto: systemctl daemon-reload, systemctl restart dockere ps -ef | grep dockerdsu Ubuntu.
laimison

1

Per eseguire il push , aggiungi l'ip al registro non sicuro dal lato client (ad esempio per Windows)

inserisci qui la descrizione dell'immagine

Per estrarlo , aggiungilo al lato server (in questo caso Ubuntu)

vim /etc/docker/daemon.json

inserisci qui la descrizione dell'immagine

e quindi riavvia Docker.


0

Nessuna delle soluzioni ha funzionato su Ubuntu 18.04, quindi dedica del tempo a trovare la causa principale.

Passaggi per risolvere un problema

sudo vi /lib/systemd/system/docker.service
# ExecStart=dockerd .... --insecure-registry=192.168.99.100:5000
sudo systemctl stop docker.service
sudo systemctl daemon-reload
sudo systemctl start docker.service

Qual è stato il problema?

Consiglierei di controllare dove dockerdsono configurate esattamente le opzioni indipendentemente dalla distribuzione Linux con:

sudo find /etc /lib -name 'docker*' | while read -r line; do grep dockerd $line /dev/null; done
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.