Я создал частный реестр докеров, перед которым стоит NGINX. NGINX — это место, где заканчивается ssl.
Я запутываю свой домен, используя my-domain.com для целей этого вопроса.
Я использую OSX 10.10.3 с установленным boot2docker. Но следует отметить, что рабочий процесс Vagrant + CoreOS + Docker не должен включать boot2docker, поскольку у меня проблемы с виртуальной машиной (CoreOS), а не с хостом (OSX).
Я использую Vagrant для запуска локальной виртуальной машины CoreOS из этого коробка. Затем я подключаюсь к экземпляру этой виртуальной машины по ssh и пытаюсь выполнить следующую команду.
$ docker login docker.my-domain.com
Затем мне предлагается ввести имя пользователя, пароль, адрес электронной почты, как и ожидалось; и я предоставляю свои данные.
Примечание. Я могу выполнить указанную выше команду в хост-ОС (OSX), как и ожидалось, и успешно войти в систему (создает файл ~/.dockercfg).
Я получаю следующую ошибку:
FATA[0008] Error response from daemon: v1 ping attempt failed with error: Get https://docker.my-domain.com/v1/_ping:
x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to
verify candidate authority certificate "*.my-domain.com"). If this private registry supports only HTTP or HTTPS
with an unknown CA certificate, please add `--insecure-registry docker.my-domain.com` 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/docker.my-domain.com/ca.crt
Я скопировал свой ca.crt из своей подписи. Я могу подтвердить, что CoreOS может правильно подключиться к моему серверу через SSL. Я выполнил эту команду
openssl s_client -CAfile /etc/docker/certs.d/docker.my-domain.com/ca.crt -connect docker.my-domain.com:443
И я получаю ожидаемый «Проверить код возврата: 0 (хорошо)». Это наводит меня на мысль, что у его докера проблемы.
$ docker version (from within CoreOS VM)
Client version: 1.6.1-rc2
Client API version: 1.18
Go version (client): go1.4.2
Git commit (client): 17f157d-dirty
OS/Arch (client): linux/amd64
Server version: 1.6.1-rc2
Server API version: 1.18
Go version (server): go1.4.2
Git commit (server): 17f157d-dirty
OS/Arch (server): linux/amd64
После всего этого я не уверен, что мне нужно попробовать дальше. Любая помощь приветствуется!