Güvensiz Kayıt Defteri'ni Docker'a Ekleyin


108

CentOS üzerinde çalışan bir docker 1.12 var. Güvenli olmayan kayıt defteri eklemeye çalışıyorum ve belgelerde belirtilen şeyler işe yaramıyor. Sistem kullandığı systemdiçin bir /etc/systemd/system/docker.service.d/50-insecure-registry.confdosya oluşturdum .

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

Arka plan programı yükledikten ve docker hizmetini yeniden başlattıktan sonra systemd, ortam değişkeninin orada olduğunu gösterir.

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

Ama çalıştırdığımda, docker infoo güvensiz kaydın eklendiğini görmüyorum

$ 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

Görüntüleri hostaneme.cloudapp.netbaşarısız olmaya itmek

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

Yapılabilecek bir şey var mı? Bir şey mi kaçırıyorum?

GÜNCELLEME

/etc/docker/daemon.jsonAşağıdaki içeriğe sahip bir dosya ekleyerek sorunu çözdü

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

Ve sonra docker'ı yeniden başlatın

sudo systemctl daemon-reload
sudo systemctl restart docker

Bundan sonra güvensiz kayıt hostname.cloudapp.net:500çalışır.


4
Bu durumda birisi sizi yense de (size cömert bir süre verdikten sonra), bu kendi kendine cevap için mükemmel bir durum olurdu.
BlackVegetable

2
mükemmel! Bu hata mesajını Openshift javamonamour.org/2017/12/docker-insecure-registry.html ile "oc kümesi oluşturulmuşken" aldım ve düzeltmeniz sorunu çözdü!
Pierluigi Vernetto

2
Sorunuzda bunu CentOS ile ilgili olarak açıkça sorduğunuzu biliyorum , ancak benim yaptığım gibi bir macOS çözümü arayan buraya gelen herkes için , bu sorunun cevabında belirtildiği gibi, şimdi GUI aracılığıyla yapılabilir .
anotherdave

Yanıtlar:


138

(Sorudan cevap kopyalanıyor)

Güvenli olmayan bir docker kayıt defteri eklemek için /etc/docker/daemon.json, aşağıdaki içeriğe sahip dosyayı ekleyin :

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

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


3
Bunun debian benzeri durumlarda doğru çözüm olduğuna inanıyorum. Red Hat beğenilerinde, onu /etc/sysconfig/dockerseçeneklerden biri olarak eklemek isteyebilirsiniz , örneğin bir Openshift kurulumundan: OPTIONS='--insecure-registry=172.30.0.0/16 --others [...]' Suse-severler hakkında bilmiyorum.
erikbwork

DigitalOcean'da, 1 tıklama Docker görüntüsü, daemon.jsondosya sürümü yerine DOCKER_OPTS kullandığını düşünüyor . Teşekkürler!
Eric Pugh

@erikbwork Varsayılan paket depolarından Docker 1.13.1 ile Fedora 28'de yaklaşım /etc/docker/daemon.jsoniyi çalışıyor.
başkanode

7
Bu daemon.json oluşturulduktan sonra docker yeniden başlatılamıyor, hata gösteriyor: 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

Teşekkürler, işe yarıyor. Bağlantı noktası olmayan durumda olabilir çünkü bağlantı noktası 80 {"güvensiz-kayıtlar": ["hostname.cloudapp.net"]}
Hernaldo Gonzalez

16

/Etc/docker/daemon.json dosyası oluşturmak ve aşağıdaki içeriği eklemek ve ardından CentOS 7'de bir docker yeniden başlatmak yapmak sorunu çözdü.

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

12

İle çözüm /etc/docker/daemon.jsonDosyanın Ubuntu'da benim için işe yaramadı.

/etc/default/dockerDosyadaki Docker daemon'a komut satırı seçenekleri sağlayarak, Ubuntu'da Docker güvenli olmayan kayıtlarını yapılandırabildim , örneğin:

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

Aynı yol, docker görüntüleri ve birimler depolaması, varsayılan DNS sunucuları vb. İçin özel dizini yapılandırmak için kullanılabilir.

Şimdi, Docker daemon yeniden başlatıldıktan sonra (çalıştırıldıktan sonra sudo service docker restart), çalıştırma şunu docker infogösterecektir:

Insecure Registries:
  a.example.com
  b.example.com
  127.0.0.0/8

1

Benim için çözüm, kayıt defterini buraya eklemekti:

/ etc / sysconfig / docker-registries

DOCKER_REGISTRIES=''
DOCKER_EXTRA_REGISTRIES='--insecure-registry  b.example.com'

0

Zaten bir config.json dosyanız varsa, son dosya şöyle görünmelidir ... İşte registry.myprivate.combana sorun çıkaran dosya .

{ "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"] }


0

Amazon Linux'ta yerel dahili JFrog Docker Özel Kayıt Defteri kurduktan sonra benzer bir sorunla karşılaştım.

Sorunu çözmek için yaptığım şeyler:

/ Etc / sysconfig / docker dosyasındaki OPTIONS değişkenini değiştirerek "--insecure-registry xx.xx.xx.xx: 8081" eklendi:

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

Ardından docker'ı yeniden başlattı.

Daha sonra şunu kullanarak yerel docker kayıt defterine giriş yapabildim:

docker login -u admin -p password hostname:8081
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.