docker ps 和 container 命令有什么区别?

我使用了docker-compose来启动容器, docker ps -al 列出了停止的容器,docker container ls 列出了正在运行的容器,但是直接run启动容器,“运行中”,“退出”状态的容器,使用docker ps -al都能看到,感觉对于这两个命令很混乱。

我看了文档,说docker ps -al用来列出容器列表,docker container用来管理容器,两个命令有区别吗?为什么单一一个命令无法把容器都列出来呢?

求路过的大佬讲解一下

阅读 7.2k
1 个回答

docker ps与docker container ls之间的区别

Docker 1.13+引入了分组命令来帮助组织一堆Docker命令。两个命令都做同样的事情。
如果您运行docker help并使用Docker 1.13+(包括v17.03 +),您将在帮助文本中看到“管理命令”和“命令”。

Management Commands:
  ...
  container   Manage containers
  image       Manage images
  ...

Commands:
  ...
  ps          List containers
  run         Run a command in a new container
  ...

完整输出要长得多,如果查看整个命令列表,其中有大约40个。查看该列表很困难,因为这些命令与容器,图像,网络,卷等相关联。

Docker意识到从长远来看这是不可持续的,因此他们添加了“管理命令”,它有助于对所有命令进行分类,并使命令本身更加一致。

例如,docker container ls是新的方法docker ps。当然这需要打更多的字,但它的作用更清晰。同样,现在你可以运行docker image ls,docker network ls或docker volume ls。所有这些命令都具有一致性。

两个版本的命令都做同样的事情。我想,长期来看,非分组命令(例如docker run)将被弃用或不赞成使用, 取而代之的是 docker container run。没有迹象表明这种情况很快就会发生,但如果您使用Docker 1.13+,那么您应该尝试使用更新的语法。它更具描述性和一致性。

参考:
https://nickjanetakis.com/blo...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题