Установите сертификат на 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
Другие вопросы по тегам