Установите сертификат на Centos 7 для доступа к реестру докера
В настоящее время у нас есть настройка реестра Docker, которая имеет безопасность. Обычно, чтобы получить к нему доступ, с точки зрения разработчика, мне нужно docker login --username=someuser --password=somepassword --email user@domain.com https://docker-registry.domain.com
,
Однако, поскольку в настоящее время я пытаюсь автоматизировать развертывание док-контейнера в облаке, одной из операций, которая является docker pull
команда, терпит неудачу, потому что вход в систему не был выполнен (это работает, если я добавляю имя входа в шаблон, но это плохо).
Мне было предложено использовать сертификат, чтобы разрешить извлечение (файл.crt). Я попытался установить сертификат, используя шаги, описанные здесь: https://www.linode.com/docs/security/ssl/ssl-apache2-centos
Но, похоже, это не работает, мне все еще нужно выполнить вход вручную, чтобы иметь возможность выполнить мой docker pull
из реестра.
Есть ли способ заменить команду входа в систему с помощью сертификата?
1 ответ
Как я вижу, это неверный URL для SSL-аутентификации между докером и частным сервером реестра.
Вы можете следить за этим:
Запуск реестра домена
Хотя работа на localhost имеет свои цели, большинство людей хотят, чтобы их реестр был более широкодоступным. Для этого движок Docker требует, чтобы вы защищали его с помощью TLS, который концептуально очень похож на настройку вашего веб-сервера с SSL.
Получить сертификат
Предполагая, что вы являетесь владельцем домена myregistrydomain.com и что его DNS-запись указывает на хост, на котором вы работаете в реестре, вам сначала нужно получить сертификат от CA.
Создайте каталог сертификатов:
mkdir -p certs
Затем переместите и / или переименуйте файл crt в: certs/domain.crt, а файл ключа в: certs/domain.key.
Убедитесь, что вы остановили реестр с помощью предыдущих шагов, а затем снова запустите его с включенным TLS:
docker run -d -p 5000:5000 --restart=always --name registry \
-v `pwd`/certs:/certs \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
-e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \
registry:2
Теперь вы сможете получить доступ к вашему реестру с другого хоста докера:
docker pull ubuntu
docker tag ubuntu myregistrydomain.com:5000/ubuntu
docker push myregistrydomain.com:5000/ubuntu
docker pull myregistrydomain.com:5000/ubuntu
Попался
Эмитент сертификата может предоставить вам промежуточный сертификат. В этом случае вы должны объединить свой сертификат с промежуточным, чтобы сформировать пакет сертификатов. Вы можете сделать это с помощью команды cat:
cat domain.crt intermediate-certificates.pem > certs/domain.crt