2017-02-13 19 views
25

У меня есть докер 1.12, работающий на CentOS. Я пытаюсь добавить в него небезопасный реестр, и все, что упоминается в документации, просто не работает. Система использует systemd, поэтому я создал файл /etc/systemd/system/docker.service.d/50-insecure-registry.conf.Добавить Insecure Registry to Docker

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

После загрузки демон и перезапуск служба докера, Systemd показывают, что переменная окружении есть

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

Но когда я бег docker info я не вижу, что небезопасный реестр добавил

$ 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 

Нажатие изображений на hostaneme.cloudapp.net с ошибкой

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 

Есть ли что-то, что можно было бы сделать? Я что-то упускаю ?

UPDATE

Решенный вопрос путем добавления файла /etc/docker/daemon.json с следующим содержанием

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

А затем перезапустить Docker

sudo systemctl daemon-reload 
sudo systemctl restart docker 

После этого небезопасного реестра hostname.cloudapp.net:500 работает.

+4

В то время как кто-то избил вас в этом случае (после предоставления щедрого льготного периода), это было бы отличным случаем для самостоятельного ответа. – BlackVegetable

+2

хороший! У меня было это сообщение об ошибке, когда «oc cluster up» с Openshift http://www.javamonamour.org/2017/12/docker-insecure-registry.html, и ваше решение решило его! – PierluigiVernetto

ответ

44

(Копирование ответ от вопроса)

Чтобы добавить небезопасный реестра Docker, добавить файл /etc/docker/daemon.json следующего содержания:

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

, а затем перезапустить докер.

+1

Я считаю, что это правильное решение для дебианских. В Red Hat вам нравится добавлять его в '/ etc/sysconfig/docker' в качестве одного из параметров, например. из установки Openshift: 'OPTIONS = '- insecure-registry = 172.30.0.0/16 --others [...]'' На Suse-like я не знаю. – erikbwork