このコマンドは、running container IDsのリストを提供します:
docker ps -q
コンテナのnamesのリストを取得するコマンドはありますか?
docker ps --format "{{.Names}}"
docker ps
と docker 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
Inspectは、Dockerがコンテナを処理する方法の内部詳細を公開します。
名前には、その親と/
== "the docker daemon"のプレフィックスが付きます。
そのため、すべての名前にこのプレフィックスが付きます。
これは、ネスティングとマルチホストが機能するときに、より重要になります。/
はinspectコマンドに適しています。
したがって、| cut -c2-
。
最近(2017年6月)、 '/
'を削除するための提案( moby/moby issue 29997 )があります。
歴史的な理由で先頭のスラッシュがあります(主にレガシーのコンテナリンクのため)
これまで(2018年6月)、主要な '/
'を取り除くためのPRは完全には実装されていません。
この質問 に触発されたこのコマンドでそれを行うことができます:
docker inspect --format='{{.Name}}' $(Sudo docker ps -aq --no-trunc)
次のコマンドを使用して、コンテナの名前を表示できます
docker ps -a --format "table {{.ID}}\t{{.Names}}"
Psコマンドの詳細については、参照リンクを参照してください https://docs.docker.com/engine/reference/commandline/ps/
Awkを使用して行うこともできます。
docker ps -a | awk '{print $NF}'
$NF
は、入力の最後の列を示し、docker ps -a
コマンドは名前です。
私の要件は、コンテナにログインするためにコンテナユーザー名を取得することです(コンテナにログインするには "docker exec -it --user"を使用する必要があります)。 docker inspect + "container id"およびgrep "user"または "name"を使用すると、Container User Nameを取得してコンテナーにログインできます。例:
# docker inspect 5791b95933ef |grep -i user