Есть ли разница между "докер ps" и "докер-контейнером"?

Документация docker ps и docker container ls оба говорят "Список контейнеров", но не упоминают другую команду. Есть ли разница между этими двумя командами?

Результат выглядит точно так же:

CONTAINER ID        IMAGE                      COMMAND                  CREATED             STATUS              PORTS                    NAMES
bbe3d7158eaa        flaskmysqldockerized_web   "python app.py"          5 hours ago         Up 18 seconds       0.0.0.0:8082->5000/tcp   flaskmysqldockerized_web_1
4f7d3f0763ad        mysql                      "docker-entrypoint..."   6 hours ago         Up 18 seconds       0.0.0.0:3307->3306/tcp   flaskmysqldockerized_db_1

Ответ 1

Нет разницы между docker ps и docker container ls. Новая командная структура (docker container <subcommand>) была добавлена ​​в Docker 1.13 для обеспечения более структурированного пользовательского интерфейса при использовании командной строки.

Насколько я знаю, официальное объявление не было опубликовано, чтобы отказаться от поддержки команд старого стиля (например, docker ps и других), хотя было бы разумно предположить, что это может произойти в какой-то момент в будущем.

Это описано в сообщении посвященном выпуску Docker 1.13:

В течение последних двух лет Docker заработал много функций, и у Docker CLI теперь есть много команд (40 на момент написания). Некоторые, такие как сборка или запуск, используются много, некоторые более неясны, например, пауза или история. Многие команды верхнего уровня несут страницы помощи и затрудняют выполнение табуляции.

В Docker 1.13 мы перегруппировали каждую команду, чтобы сидеть под логическим объектом, с которым он взаимодействует. Например, список и начало контейнеров теперь являются подкомандами контейнера докеров, а история - подкомандой изображения докеров.

docker container list
docker container start
docker image history

Эти изменения позволяют нам очистить синтаксис CLI Docker, улучшить текст справки и упростить использование Docker. Старый синтаксис команды по-прежнему поддерживается, но мы призываем всех принять новый синтаксис.