Docker processコマンドを使用してdockerインスタンスのコンテナIDを取得しようとしましたが、nameでフィルターを使用しようとするとfineが機能します。
Sudo -S docker ps -q --filter="name=romantic_rosalind"
結果コンテナID:
3c7e865f1dfb
しかし、imageを使用してフィルタリングすると、すべてのインスタンスコンテナIDが取得されます。
Sudo -S docker ps -q --filter="image=docker-mariadb:1.0.1"
結果コンテナID:
5570dc09b581
3c7e865f1dfb
しかし、私はmariadbのコンテナIDのみを取得したいです。
フィルタをイメージとして使用してdockerプロセスのコンテナIDを取得する方法?
awk
およびgrep
を使用して、指定されたコンテナIDをフィルタリングできます。例えば:
docker ps | grep "docker-mariadb:1.0.1" | awk '{ print $1 }'
これにより、コンテナのIDが出力されます。
うまく機能する「イメージ」の代わりに「祖先」を使用します。例:
Sudo -S docker ps -q --filter ancestor=docker-mariadb:1.0.1
Dockerチームは、それを最新バージョンに追加した可能性があります。 http://docs.docker.com/engine/reference/commandline/ps/
コンテナーをリストするためのコマンドdocker container ls
(docker ps
の代替)を使用すると、ソリューションは次のようになります。
docker container ls | grep "docker-mariadb:1.0.1" | awk '{ print $1 }'
次のように*
記号(必要な場合)を使用することもできます。
docker container ls | grep "docker-mariadb:*" | awk '{ print $1 }'
https://docs.docker.com/engine/reference/commandline/container_ls/ を参照してください
docker ps -a | awk '{ print $1,$2 }' | grep imagename | awk '{print $1 }'
これは完璧です。必要に応じて、以下のように特定のstsatusのみの実行イメージのフィルターを追加できます
docker ps -a --filter=running | awk '{ print $1,$2 }' | grep rulsoftreg:5000/mypayroll/cisprocessing-printdocsnotifyconsumer:latest | awk '{print $1 }'
他のさまざまなフィルターオプションについては、こちらをご覧ください
https://docs.docker.com/v1.11/engine/reference/commandline/ps/