我想知道本地是否存在具有特定标记的Docker镜像.如果Docker客户端本身不能这样做,我可以使用bash脚本.
只是为潜在的bash脚本提供一些提示,运行该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
Run Code Online (Sandbox Code Playgroud)
Von*_*onC 123
我经常测试结果docker images -q(如在这个脚本中):
if [[ "$(docker images -q myimage:mytag 2> /dev/null)" == "" ]]; then
# do something
fi
Run Code Online (Sandbox Code Playgroud)
但 因为.docker images只REPOSITORY作为参数,你需要grep on tag,而不使用-q
docker images 现在拿标签(docker 1.8+) [REPOSITORY[:TAG]]
下面提到的另一种方法是使用docker inspect.
但是对于docker 17+,图像的语法是:( docker image inspect在不存在的图像上,退出状态将为非0)
Tra*_*der 29
试试docker inspect,例如:
$ docker inspect --type=image treeder/hello.rb:nada
Error: No such image: treeder/hello.rb:nada
[]
Run Code Online (Sandbox Code Playgroud)
但是现在有了一个存在的图像,你会得到一堆信息,例如:
$ docker inspect --type=image treeder/hello.rb:latest
[
{
"Id": "85c5116a2835521de2c52f10ab5dda0ff002a4a12aa476c141aace9bc67f43ad",
"Parent": "ecf63f5eb5e89e5974875da3998d72abc0d3d0e4ae2354887fffba037b356ad5",
"Comment": "",
"Created": "2015-09-23T22:06:38.86684783Z",
...
}
]
Run Code Online (Sandbox Code Playgroud)
它是一个很好的json格式.
rub*_*cks 17
tldr:
docker image inspect myimage:mytag
Run Code Online (Sandbox Code Playgroud)
通过示范......
成功,找到图片:
$ docker image pull busybox:latest
latest: Pulling from library/busybox
Digest: sha256:32f093055929dbc23dec4d03e09dfe971f5973a9ca5cf059cbfb644c206aa83f
Status: Image is up to date for busybox:latest
$ docker image inspect busybox:latest >/dev/null 2>&1 && echo yes || echo no
yes
Run Code Online (Sandbox Code Playgroud)
失败,缺少图像:
$ docker image rm busybox:latest
Untagged: busybox:latest
Untagged: busybox@sha256:32f093055929dbc23dec4d03e09dfe971f5973a9ca5cf059cbfb644c206aa83f
$ docker image inspect busybox:latest >/dev/null 2>&1 && echo yes || echo no
no
Run Code Online (Sandbox Code Playgroud)
参考:
https://docs.docker.com/engine/reference/commandline/image_inspect/
Luí*_*hin 15
你可以使用如下:
[ ! -z $(docker images -q someimage:sometag) ] || echo "does not exist"
Run Code Online (Sandbox Code Playgroud)
要么:
[ -z $(docker images -q someimage:sometag) ] || echo "already exists"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
70069 次 |
| 最近记录: |