Подтвердить что ты не робот

Получить имена контейнеров-докеров

Эта команда дает мне список запущенных идентификаторов контейнеров:

docker ps -q

Есть ли команда для получения списка имен контейнеров?

4b9b3361

Ответ 1

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

Ответ 2

Вы можете комбинировать 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-

Как прокомментировал Крис Стрычински, он будет печатать имена с префиксом " / ".

[email protected]:~$ 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

Из моба/моба номер 6705:

Осмотреть разоблачить внутренние детали того, как докер обрабатывает контейнер.
Имена имеют префикс с их родителем и / == "демон докера".
Вот почему каждое имя будет иметь этот префикс.
Это будет более важно, когда в игру вступят вложенность и мультихост.
/ Является правильным для команды проверки.

Отсюда | cut -c2- | cut -c2-.

Совсем недавно (июнь 2017 года) появилось предложение (номер мобильного /29997) для удаления символа " / ":

ведущий слеш существует по историческим причинам (в основном из-за устаревших ссылок на контейнеры)

До сих пор (июнь 2018 г.) ни один PR не был полностью реализован, чтобы избавиться от лидирующего символа " / ".

Ответ 3

Вы можете сделать это с помощью этой команды, вдохновленной этим вопросом:

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

Ответ 4

Вы можете использовать следующую команду для отображения имен контейнера

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

Вот ссылка для получения дополнительной информации о команде ps https://docs.docker.com/engine/reference/commandline/ps/

Ответ 5

Вы также можете сделать это с помощью awk:

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

$NF указывает на последний столбец ввода, который в docker ps -a является Имена.

Ответ 6

Мое требование - получить имя пользователя контейнера для входа в контейнер (мне нужно использовать docker exec -it --user для входа в контейнер). Используйте docker inspect + container id и grep user или name, чтобы получить имя пользователя контейнера и войти в контейнер.

Пример:

    # docker inspect 5791b95933ef |grep -i user