В отличие от ссылки документации Docker, касающейся этого вопроса, инструкции Linux / Unix также работают для macOS / OS X:
https://docs.docker.com/engine/security/certificates/
Ниже приведены инструкции по работе с MacBook Pro с использованием macOs High Sierra 10.13.5 (17F77)
Docker-клиент (локальный Docker) версия: 18.03.1-ce
Поместите файл центра сертификации (CA), предоставленный удаленным администратором реестра, в определенную структуру папок с помощью команд терминала:
sudo mkdir -p /etc/docker/certs.d/registry.mydomain.example.com
sudo cp ca.crt /etc/docker/certs.d/registry.mydomain.example.com
Примечание: Если вы используете URL-адрес с портом для подключения к реестру, порт должен быть включен в имя папки в папке certs.d. URL также может быть в форме IP:
sudo mkdir -p /etc/docker/certs.d/registry.mydomain.example.com:443
sudo mkdir -p /etc/docker/certs.d/172.123.123.1:443
РЕДАКТИРОВАТЬ ДОБАВИТЬ!
Я проверил это с коллегой, и было обнаружено, что требуется добавить файл CA в macOS Keychain (я также делал это ранее). It is currently unknown if the above /etc/docker steps are even required on Mac.
Мы использовали это руководство для импорта файла ca.crt в связку ключей (в меню «Сертификаты» отображается как «ненадежный»).
https://www.sslsupportdesk.com/how-to-import-a-certificate-into-mac-os/
После этого перезапустите локальный Docker.
После этого вход в Docker должен работать нормально. Если вы все еще продолжаете получать ошибку неизвестного прав доступа x509, возможно, было бы неплохо проверить достоверность сертификата сервера удаленного реестра (например, путем перехода по URL-адресу реестра с помощью браузера) на файл CA, используя команды openssl:
https://www.sslshopper.com/article-most-common-openssl-commands.html
Ниже приведен пример работы с интегрированным (атомарным) реестром OpenShift:
oc login https://registry.mydomain.example.com -u myUser --certificate-authority=ca.crt
docker login -u $(oc whoami) -p $(oc whoami -t) https://registry.mydomain.example.com
Вы должны получить приглашение, которое Login Succeeded
, затем:
docker build -t registry.mydomain.example.com/openshiftProject/my-image:1.0 .
docker push registry.mydomain.example.com/openshiftProject/my-image:1.0