web-dev-qa-db-ja.com

Dockerコンテナー名を取得する

このコマンドは、running container IDsのリストを提供します:

docker ps -q

コンテナのnamesのリストを取得するコマンドはありますか?

33
corey

docker ps --format "{{.Names}}"

49
cleong

docker psdocker inspect を組み合わせることができます。前に " Docker.ioでコンテナをリストするにはどうすればよいですか? ":

docker inspect --format='{{.Name}}' $(Sudo docker ps -aq --no-trunc)
docker inspect --format='{{.Name}}' $(Sudo docker ps -aq --no-trunc) | cut -c2-

コメント by Chris Stryczynski のように、接頭辞として '/'を付けて名前を出力します。

vagrant@master:~$ docker inspect --format='{{.Name}}' $(Sudo docker ps -aq --no-trunc)
/k8s_kubernetes-dashboard_kubernetes-dashboard-d9d8f48bc-vz59c_kube-system_b2abc584-730a_0
/k8s_POD_kubernetes-dashboard-d9d8f48bc-vz59c_kube-system_b2abc584-_0
/k8s_metrics-server_metrics-server-6fbfb84cdd-sjrgr_kube-system_e147bf91-7218-11e8-8266_0
/k8s_POD_metrics-server-6fbfb84cdd-sjrgr_kube-system_e147bf91-7218-11e8-8266-00155d380143_0

moby/moby issue 6705 から:

Inspectは、Dockerがコンテナを処理する方法の内部詳細を公開します。
名前には、その親と/ == "the docker daemon"のプレフィックスが付きます。
そのため、すべての名前にこのプレフィックスが付きます。
これは、ネスティングとマルチホストが機能するときに、より重要になります。
/はinspectコマンドに適しています。

したがって、| cut -c2-

最近(2017年6月)、 '/'を削除するための提案( moby/moby issue 29997 )があります。

歴史的な理由で先頭のスラッシュがあります(主にレガシーのコンテナリンクのため)

これまで(2018年6月)、主要な '/'を取り除くためのPRは完全には実装されていません。

13
VonC

この質問 に触発されたこのコマンドでそれを行うことができます:

docker inspect --format='{{.Name}}' $(Sudo docker ps -aq --no-trunc)
8
h3nrik

次のコマンドを使用して、コンテナの名前を表示できます

docker ps -a --format "table {{.ID}}\t{{.Names}}"

Psコマンドの詳細については、参照リンクを参照してください https://docs.docker.com/engine/reference/commandline/ps/

2
Maulik Parmar

Awkを使用して行うこともできます。

docker ps -a | awk '{print $NF}'

$NFは、入力の最後の列を示し、docker ps -aコマンドは名前です。

1
Lefteris Xris

私の要件は、コンテナにログインするためにコンテナユーザー名を取得することです(コンテナにログインするには "docker exec -it --user"を使用する必要があります)。 docker inspect + "container id"およびgrep "user"または "name"を使用すると、Container User Nameを取得してコンテナーにログインできます。例:

    # docker inspect 5791b95933ef |grep -i user
1
kain