使用图像finddocker的容器?

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

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

但是,我怎么能find这个自动化的方式,而不是试图删除它?

f要列出活动容器docker inspect -f '{{ .Config.Image}}' $(docker ps -q)和所有容器的docker inspect -f '{{ .Config.Image}}' $(docker ps -qa)

你可以试试这个:

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

例:

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

输出:

 4d6fb8a7149f 2baa726b1aa5 

希望这可以帮助。