我如何知道我是否从脚本login到私有Dockerregistry?
我如何判断我是否从脚本login到私人Dockerregistry服务器? 换句话说, docker login some.registry.com
已成功运行?
注意:我问的是一个任意的私人registry,而不是docker.io
registry。
如果.docker
login工作,你会在你的主目录( ~/.docker/
)上find一个.docker
文件夹,里面有一个config.json
文件。
否则你会得到一个错误login。
注意:docker通过查看registry名称来确定要使用的凭据:
如果你这样做
docker pull myregistry.com/myimage:tag
docker工人会看看你是否login,如果没有,将检查你是否有registrymyregistry.com
的凭据,并与这些login。
如果没有,你会得到一个权限错误
这有点不好,但对大多数情况下,
if ! grep -q "my.private.registry.com" ~/.docker/config.json ; then docker login "my.private.registry.com" fi
基本上,你search~/.docker/config.json
是否有“my.private.registry.com”的logging。 但是,如果会话过期,则此检查将无法捕获。
当你这样做的时候
Docker login <private registry> -u <user> -p <password>
命令从你的terminal,你将有一个回应:(存储在$?)
0 Login Succeeded
如果你成功了。
在你的shell脚本中,你可以看看你正在收到的响应,如果它不等于0,那么你没有login。
sudo docker login <registry> -u <uname> -p <password> if [ $? -ne 0 ]; then echo Login failed! else echo Login OK! fi