Docker'ı 1.12'ye güncelledikten sonra görüntüleri çekemez / itemezsiniz


86

Özel kayıt, docker 1.10.3'e göre iyi çalıştı, ancak docker 1.12.0'a güncellendikten sonra görüntüleri çekemiyorum / itemiyorum.

/ Etc / sysconfig / docker'ı şu şekilde değiştirdim:

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

veya

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

ama çekme / itme çalıştırdığımda şu hatayı aldım:

$ 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

docker'ı 1.10.3'e geri döndürdüğümde, hala aşağıdaki gibi çalışıyor:

$ 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

Bazı ilgili bilgiler aşağıda listelenmiştir:

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

Docker daemon'u hata ayıklama modunda yeniden başlattıktan sonra, sorunumu yeniden oluştururken arka plan programı günlükleri aşağıda listelenmiştir:

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

Dahası, test için özel kayıt defterini başlatmak için basit bir komut çalıştırıyorum, varsayılan olarak başka bir şey:

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

Hiçbir proxy yapılandırılmamış. Özetle, test için sadece sessiz bir örnek ortamdır.


Pekala, ben de aynı hatayla karşılaşıyorum, ancak garip olan, RHEL 7'de / etc / sysconfig / docker dosyamın olmaması, bulabileceğim benzer bir dosya biliyor musunuz? bu docker dosyasının içeriği nelerdir? Teşekkür ederim.
sai

Docker daemon'un çalışma şeklini değiştirmek istiyorsanız bu dosya bazı seçenekler içerir. RHEL7'de tam yolu bilmiyorum. Ama "$ sudo locate docker" komutuyla çalıştırırsanız, dosyayı bir yerde bulacaksınız
yuxiaoyu

/Etc/docker/daemon.json dosyasını silmeyi ve docker hizmetini yeniden başlatmayı bitirdim, / etc / sysconfig / docker
Max Barrass,

MacOS kullanıcıları için bu yanıtı görün: stackoverflow.com/a/39492340/706521
Adrian Forsius

Yanıtlar:


222

Ben de aynı sorunu yaşadım.

Bu bana yardımcı oldu:

  • İstemci makinesinde /etc/docker/daemon.json oluşturun veya değiştirin

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

  • Docker daemon'u yeniden başlatın

    sudo /etc/init.d/docker restart


7
Benim durumumda Ubuntu 16.04 kullanıyorum ve / etc / default / docker (yapılandırmamın olduğu yer) upstart'a özgü. 16.04 systemd kullanır. /etc/docker/daemon.json, platformdan bağımsız bir yapılandırmadır. github.com/docker/docker/issues/23512 github.com/docker/docker/issues/23228
bojtib

1
Güvensiz kayıt defterinin nasıl kurulacağına dair belgeler burada. Docs.docker.com/registry/insecure
Ivailo Bardarov

6
/etc/docker/daemon.jsonMevcut değilse dosya oluşturun . ÖzgüUbuntu 16.04
deepdive

MacOS için bilgisi olan var mı?
Adrian Forsius

docker V17.x'i kurduğumda bu bana yardımcı oldu. Docker.io v1.x varken bir şekilde işe yaramadı
node_man

24

Windows kullanıcıları için

Buraya yerel kayıt ekleyin ve uygulayın:

görüntü açıklamasını buraya girin


7

Mac Kullanıcıları için: Üst çubuktaki (docker) simgesini kullanarak docker tercihlerini güncelleyin

Tercihler -> Daemon -> Güvenli Olmayan Kayıt [(+) işaretine tıklayın] -> ekle: bağlantı noktası

alttaki "Uygula ve Yeniden Başlat" düğmesine basın

Docker tercih penceresini gösteren resim


6

Ben de aynı sorunu yaşadım ve aşağıdaki adımları izledim:

1. Dosya oluşturun

 vi /etc/docker/daemon.json

2. Aşağıdaki içeriği ekleyin

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

3. Docker'ı Yeniden Başlatın

service docker restart

3

Windows kullanıyorsanız ve bu hatayı alıyorsanız, burada bir dosya oluşturmanız gerekir: "C:\ProgramData\docker\config\daemon.json"

ve yukarıda belirtilen @Bspec ile aynı şeyi yapın:

{"güvenli olmayan-kayıtlar": ["kaydım.example.com:5000"]}

Ardından PowerShell komutlarını kullanarak docker'ı yeniden başlatın:

Stop-Service docker
Start-Service docker

2

"/etc/docker/daemon.json" üzerinde değişiklik yapmak benim için işe yaramadı.

Aşağıdaki gibi "/ etc / sysconfig / docker" altına koymak işe yaradı.

INSECURE_REGISTRY = "- güvenli olmayan kayıt 192.168.24.1:8787"


Bize --insecure-registryseçenek gösterdiğin için teşekkürler . Benim durumumda, /etc/systemd/system/docker.service.d/docker-options.confKubespray kullanıyorum çünkü başka bir dosyaydı. Yani diğerleri için: DOCKER_OPTSparametrenizi bulmanız gerekir . : Sadece bu aramayı kullanmak grep -ER DOCKER_OPTS /etckarşısında /etcdizinde. : Benim özel durumda, benim yaptığım ayarlar etkin hale getirmek için systemctl daemon-reload, systemctl restart dockerve ps -ef | grep dockerdUbuntu.
laimison

1

Amacıyla itme , istemci tarafında güvensiz kayıt defterine ip ekleyin (örn Windows için)

görüntü açıklamasını buraya girin

Çekmek için sunucu tarafına ekleyin (bu durumda Ubuntu)

vim /etc/docker/daemon.json

görüntü açıklamasını buraya girin

ve ardından Docker'ı yeniden başlatın.


0

Çözümlerden hiçbiri Ubuntu 18.04'te işe yaramadı, bu nedenle temel nedeni bulmak için biraz zaman ayırın.

Bir sorunu çözmek için adımlar

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

Sorun neydi?

dockerdLinux dağıtımınız ne olursa olsun, seçeneklerin tam olarak nerede yapılandırıldığını kontrol etmenizi öneririm :

sudo find /etc /lib -name 'docker*' | while read -r line; do grep dockerd $line /dev/null; done
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.