Я установил 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
Вы уверены, что ваш iptables на juandapc позволяет tcp 5000 через INPUT? Также, пожалуйста, 1) выполните оболочку в запущенном контейнере реестра и убедитесь, что реестр запущен (ps -ax) 2) убедитесь, что он прослушивает локальные 5000 (netstat -nap | grep 5000 | grep LISTEN) с хоста) – BadZen
You не нужно * nginx, но на данный момент это, вероятно, хорошая идея ... – BadZen
Я выполнил свой вопрос. Я думаю, что iptables прав, а также контейнер. Что-нибудь еще? nginx хорошая идея в моем случае? Зачем? – user2670996