MacOS 下登陆私有Docker 仓库并拉取镜像

在mac下,并不存在/etc/docker/certs.d文件夹,虽然可以手动创建,但即便将自己私有仓库的CA证书放入,仍旧提示x509: certificate signed by unknown authority错误.

因此可以在图形界面打开Docker.app-Preferences-DaemonInsecure registries栏中填入私有仓库的doman:port.这样便可以直接拉去公开的镜像.但若要拉去私有镜像,则必须先登录,此时便有可能遇到如下错误:

Error saving credentials: error storing credentials – err: exit status 1, out: `User interaction is not allowed.`

有两种方法可以解决这个情况:

  1. 在图形界面打开Docker.app-Preferences-General,取消勾选的Securely store Docker logins in macOS keychain,此后的登陆便不会验证证书.

  2. launchpad中搜索Keychain Access并打开,然后在搜索栏中搜索仓库的证书,关键字为仓库的domain.

搜到后添加信任,并编辑.docker/config.json文件,将其中的"credsStore": "osxkeychain"字段删除,便可登陆.

update.
根据网友的友情提示,可以把证书下载到mac中,执行命令

sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain domain.crt

然后用图形界面重启 docker 也可以.