使用图像查找docker容器?

时间:2015-07-08 09:37:24

标签: docker

如果我有图像的ID,我如何找出哪些容器正在使用此图像?删除仍在使用的图像时,会收到错误消息:

$ docker rmi 77b0318b76b3
Error response from daemon: Conflict, cannot delete 77b0318b76b3 because the container 21ee2cbc7cec is using it, use -f to force

但是如何在不尝试删除它的情况下以自动方式找到它呢?

2 个答案:

答案 0 :(得分:1)

如果要列出活动容器docker inspect -f '{{ .Config.Image}}' $(docker ps -q)的图像以及所有容器docker inspect -f '{{ .Config.Image}}' $(docker ps -qa)

的图像

答案 1 :(得分:1)

你可以试试这个:

docker ps -a | grep `docker images | grep IMAGE_ID | awk '{print $1":"$2}'` | awk '{print $1}'
  • 使用 docker ps -a ,您将获得所有容器的列表,包括 你感兴趣的人。
  • 问题是你有IMAGE NAME但你需要IMAGE ID。
  • 您可以使用 docker images 获取给定图片名称的图片ID,这就是您使用的 在你的grep中按你的IMAGE ID过滤。
  • 最后,您会看到第一列仅显示CONTAINER ID。

示例:

docker ps -a \
 | grep `docker images | grep 3a041c1b0a05 | awk '{print $1":"$2}'` \
 | awk '{print $1}'

输出:

4d6fb8a7149f
2baa726b1aa5

希望这有帮助。