Docker 同一域名下多个 Registry 保存凭证的方式
阿里云的容器镜像服务是个好东西,配合在阿里云上容器服务,速度非常快。
但是阿里云的容器服务不支持自定义域名,都是在同一个域名下,通过不同的 namespace
来实现的。当需要管理多个账户下的不同 namespace
的时候,Docker 默认的认证存储方式就不太适用了。默认的 ~/.docker/config.json
中的 auths
是根据域名来区分的,会出现登录了这个 namespace
之后,另一个 namespace
认证会失效的情况。经过一番搜索,发现可以通过 docker --config
来实现。
通过如下方式来创建一个名为 config-a
的配置
docker --config ~/.docker/config-a login --username=config-a-username registry.cn-hangzhou.aliyuncs.com
之后 push
之类的命令,在前面加个 --config ~/.docker/config-a
即可,例如:
docker build -t registry.cn-hangzhou.aliyuncs.com/xxx/hblb-web:$npm_package_version -t registry.cn-hangzhou.aliyuncs.com/xxx/hblb-web:latest . && docker --config ~/.docker/config-a push registry.cn-hangzhou.aliyuncs.com/xxx/hblb-web:$npm_package_version && docker --config ~/.docker/config-a push registry.cn-hangzhou.aliyuncs.com/xxx/hblb-web:latest
同理,可以增加其他的 config
来完成同一域名下多个账号的认证存储。
评论区