我想找出本地是否存在带有特定标签的Docker映像。如果Docker客户端无法本地执行此操作,我可以使用bash脚本。
仅为了提供一些可能的bash脚本提示,运行docker images命令的结果将返回以下内容:
docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE rabbitmq latest e8e654c05c91 5 weeks ago 143.5 MB busybox latest 8c2e06607696 6 weeks ago 2.433 MB rabbitmq 3.4.4 a4fbaad9f996 11 weeks ago 131.5 MB
我通常会测试的结果docker images -q(如以下脚本所示):
docker images -q
if [[ "$(docker images -q myimage:mytag 2> /dev/null)" == "" ]]; then # do something fi
但 由于docker images仅将其REPOSITORY作为参数,因此您需要对tag进行grep,而不使用-q。
REPOSITORY
-q
docker images 立即获取标签(docker 1.8+) [REPOSITORY[:TAG]]
[REPOSITORY[:TAG]]
下面提到的另一种方法是使用docker inspect。 但是,对于docker 17+,图像的语法为:( docker image inspect 在不存在的图像上,退出状态将为非0)
docker image inspect
正如iTayb在评论中指出的: