Какова команда для получения идентификатора контейнера docker из имени контейнера?
Получить идентификатор контейнера докера из имени контейнера
Ответ 1
В Linux:
sudo docker ps -aqf "name=containername"
Или в OS X:
docker ps -aqf "name=containername"
где containername
- это имя вашего контейнера.
Чтобы избежать ложных срабатываний, как отмечает @llia Сидоренко, вы можете использовать привязки регулярных выражений следующим образом:
docker ps -aqf "name=^containername$"
объяснение:
-q
для тишины. выводить только идентификатор-a
для всех. работает, даже если ваш контейнер не работает-f
для фильтра.- Имя контейнера
^
должно начинаться с этой строки - Имя контейнера
$
должно заканчиваться этой строкой
Ответ 2
Вы можете попробовать это:
docker inspect --format="{{.Id}}" container_name
Этот подход не зависит от ОС.
Ответ 3
-
Получить идентификаторы контейнера для запущенных контейнеров::
$docker ps -qf "name=IMAGE_NAME" -f: Filter output based on conditions provided -q: Only display numeric container IDs
-
Получить идентификаторы контейнера для всех контейнеров::
$docker ps -aqf "name=IMAGE_NAME" -a: all containers
Ответ 4
Если вы хотите получить полный ContainerId на основе имени контейнера, используйте следующую команду
docker ps --no-trunc -aqf name=containername
Ответ 5
Самый простой способ, который я могу представить, - разобрать вывод docker ps
Позволяет запускать последнее изображение ubuntu в интерактивном режиме и подключаться к нему
docker run -it ubuntu /bin/bash
Если вы запустите docker ps
в другом терминале, вы увидите что-то вроде
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8fddbcbb101c ubuntu:latest "/bin/bash" 10 minutes ago Up 10 minutes gloomy_pasteur
К сожалению, разбор этого формата непросто, поскольку они используют пробелы для ручного выравнивания материала
$ sudo docker ps | sed -e 's/ /@/g'
[email protected]@@@@@@@@[email protected]@@@@@@@@@@@@@@[email protected]@@@@@@@@@@@@[email protected]@@@@@@@@@@@@[email protected]@@@@@@@@@@@@@[email protected]@@@@@@@@@@@@@@NAMES
[email protected]@@@@@@@ubuntu:[email protected]@@@@@@"/bin/bash"@@@@@@@@@[email protected]@[email protected]@@@@@[email protected]@[email protected]@@@@@@@@@@@@@@@@@@@@@@@@@@[email protected]@@@@@
Вот script, который преобразует вывод в JSON.
https://gist.github.com/mminer/a08566f13ef687c17b39
На самом деле, выход немного удобнее работать с этим. Каждое поле имеет ширину 20 символов.
[['CONTAINER ID',0],['IMAGE',20],['COMMAND',40],['CREATED',60],['STATUS',80],['PORTS',100],['NAMES',120]]