如何根据图像过滤docker进程

Pri*_*ini 40 filtering docker

我一直在尝试使用docker process命令获取docker实例的容器ID,但是当我尝试使用filter进行名称时,它对我来说很好.

sudo -S docker ps -q --filter="name=romantic_rosalind"
Run Code Online (Sandbox Code Playgroud)

结果容器ID:

3c7e865f1dfb

但是,当我使用图像过滤我得到所有实例容器ID:

sudo -S docker ps -q  --filter="image=docker-mariadb:1.0.1"
Run Code Online (Sandbox Code Playgroud)

结果容器ID:

5570dc09b581

3c7e865f1dfb

但我希望只获得mariadb的容器ID.

如何使用filter作为图像获取docker进程的容器ID?

小智 75

使用"祖先"代替"图像",效果很好.例:

sudo -S docker ps -q  --filter ancestor=docker-mariadb:1.0.1
Run Code Online (Sandbox Code Playgroud)

Docker团队可能已将其添加到最新版本中:http: //docs.docker.com/engine/reference/commandline/ps/


wsl*_*wsl 32

您可以使用awkgrep过滤指定的容器ID.例如:

docker ps | grep "docker-mariadb:1.0.1" | awk '{ print $1 }'
Run Code Online (Sandbox Code Playgroud)

这将打印容器的ID.

  • 更准确的东西:`docker ps -a | awk'$ 2 =="docker-mariadb:1.0.1"{print $ 1}'`. (2认同)