2015-05-06 8 views
1

Я установил Docker реестра 2.0 в Ubuntu 14.04, после официального сайта: https://docs.docker.com/registry/deploying/По умолчанию установка Docker частного реестра Ubuntu

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

  • Все клиенты будут 1.6 так просто реестр 2,0 требуется
  • Нам не нужны какие-либо проверки подлинности

I установите его:

docker run -d -p 5000:5000 registry:2.0 

Затем я готовлю новый образ для грузчика:

docker tag ubuntu:14.04 juandapc:5000/ubuntu:14.04 
docker tag ubuntu:14.04 juandapc:5000/ubuntu:14.04 

Я заменить Localhost как в документации для juandapc, машины имени хоста.

Howerver, когда я пытаюсь получить доступ к хранилищу из другой машины (телнет juandapc 5000) Я получаю эту ошибку:

FATA[0000] Error response from daemon: v1 ping attempt failed with error: Get https://juandapc:5000/v1/_ping: dial tcp 192.168.1.50:5000: connection refused. If this private registry supports only HTTP or HTTPS with an unknown CA certificate, please add `--insecure-registry juandapc:5000` to the daemon's arguments. In the case of HTTPS, if you have access to the registry's CA certificate, no need for the flag; simply place the CA certificate at /etc/docker/certs.d/juandapc:5000/ca.crt 

Если я тяну, ту же ошибку:

# docker pull juandapc:5000/ubuntu 
FATA[0000] Error response from daemon: v1 ping attempt failed with error: Get https://juandapc:5000/v1/_ping: tls: oversized record received with length 20527. If this private registry supports only HTTP or HTTPS with an unknown CA certificate, please add `--insecure-registry juandapc:5000` to the daemon's arguments. In the case of HTTPS, if you have access to the registry's CA certificate, no need for the flag; simply place the CA certificate at /etc/docker/certs.d/juandapc:5000/ca.crt 

мне нужно сделать настроить nginx? Документация установить Nginx для режима производства с реестром 1.6 и 2.0, но это не мой случай ...

брандмауэра в хост (juandapc):

# iptables -L -t nat 
Chain PREROUTING (policy ACCEPT) 
target  prot opt source    destination   
DOCKER  all -- anywhere    anywhere    ADDRTYPE match dst-type LOCAL 

Chain INPUT (policy ACCEPT) 
target  prot opt source    destination   

Chain OUTPUT (policy ACCEPT) 
target  prot opt source    destination   
DOCKER  all -- anywhere   !127.0.0.0/8   ADDRTYPE match dst-type LOCAL 

Chain POSTROUTING (policy ACCEPT) 
target  prot opt source    destination   
MASQUERADE all -- 172.17.0.0/16  anywhere    
MASQUERADE tcp -- 172.17.0.5   172.17.0.5   tcp dpt:5000 

Chain DOCKER (2 references) 
target  prot opt source    destination   
DNAT  tcp -- anywhere    anywhere    tcp dpt:5000 to:172.17.0.5:5000 

Порты с хоста juandapc (ESCUCHAR является СЛУШАТЬ):

# netstat -natp 
Conexiones activas de Internet (servidores y establecidos) 
Proto Recib Enviad Dirección local   Dirección remota  Estado  PID/Program name 
tcp  0  0 0.0.0.0:22    0.0.0.0:*    ESCUCHAR 919/sshd   
tcp  0  0 192.168.1.50:22  172.30.164.14:38412  ESTABLECIDO 3924/sshd: administ 
tcp6  0  0 :::22     :::*     ESCUCHAR 919/sshd   
tcp6  0  0 :::5000     :::*     ESCUCHAR 3651/docker-proxy 

5000 есть, но нет ipv4 ????

Реестр в контейнере:

# docker ps 
CONTAINER ID  IMAGE    COMMAND    CREATED    STATUS    PORTS     NAMES 
1978cdff5e8c  registry:2.0  "registry cmd/regist 4 hours ago   Up 4 hours   0.0.0.0:5000->5000/tcp mad_shockley 

# docker exec mad_shockley ps -ax 
    PID TTY  STAT TIME COMMAND 
    1 ?  Ssl 0:00 registry cmd/registry/config.yml 
    14 ?  Rs  0:00 ps -ax 

От juandpc я могу попасть в контейнер:

# docker exec -t -i mad_shockley /bin/bash 
[email protected]:/go/src/github.com/docker/distribution# hostname 
1978cdff5e8c 
+0

Вы уверены, что ваш iptables на juandapc позволяет tcp 5000 через INPUT? Также, пожалуйста, 1) выполните оболочку в запущенном контейнере реестра и убедитесь, что реестр запущен (ps -ax) 2) убедитесь, что он прослушивает локальные 5000 (netstat -nap | grep 5000 | grep LISTEN) с хоста) – BadZen

+0

You не нужно * nginx, но на данный момент это, вероятно, хорошая идея ... – BadZen

+0

Я выполнил свой вопрос. Я думаю, что iptables прав, а также контейнер. Что-нибудь еще? nginx хорошая идея в моем случае? Зачем? – user2670996

ответ

3

Сообщение об ошибке был ключ:

FATA[0000] Error response from daemon: v1 ping attempt failed with error: Get https://juandapc:5000/v1/_ping: dial tcp 192.168.1.50:5000: connection refused. If this private registry supports only HTTP or HTTPS with an unknown CA certificate, please add `--insecure-registry juandapc:5000` to the daemon's arguments. In the case of HTTPS, if you have access to the registry's CA certificate, no need for the flag; simply place the CA certificate at /etc/docker/certs.d/juandapc:5000/ca.crt 

Добавлено эта строка:/и т.д./по умолчанию/Докер:

DOCKER_OPTS="--insecure-registry juandapc:5000" 

Перезагруженный докер и отлично!

+0

Это не работает для меня. У меня всегда такая же проблема. Любая идея? Я уже перезапустил демон докеров. – Nothing

0

Удаленный хост часть вашего тега должен содержать имя удаленного реестра, а не имя локального (pushing/publication) клиента.

Таким образом, в данном случае:

juandapc:5000/ubuntu:14.04 

должен быть

<registry-server>:5000/ubuntu:14.04 

где вы заменить < реестра-сервер > с тем, что машина, которую вы создали реестр на. Как бы то ни было, вы пытаетесь нажать из juandapc в удаленный репозиторий на juandapc, и, поскольку этого не существует, соединение отклонено ...

Если juandapc на самом деле там, где вы установили службу, с другой стороны - У вас проблемы с разрешением имен DNS/имен. (Вы добавили запись/etc/hosts для juandapc? Почему она разрешает 192.168.1.50, вместо фактического адреса интерфейса, который Netstat показывает)

+0

Я пробовал с двумя машинами, и у меня смешанный код. Сейчас все в порядке. juandapc - 192.168.1.50 и является машиной, на которой я выполнил docker run -d -p 5000: 5000 registry: 2.0. На другой машине у меня есть запись в/etc/hosts с: 192.168.1.50 juandapc. – user2670996

+0

Должен ли я использовать как реестр-сервер 1978cdff5e8c? См. Мой вопрос, отредактированный еще раз – user2670996