docker ps和docker container ls有区别吗?

3ks5zfa0  于 2023-08-03  发布在  Docker
关注(0)|答案(3)|浏览(146)

docker psdocker 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

字符串

6yt4nkrj

6yt4nkrj1#

docker psdocker container ls之间没有差异。在Docker 1.13中添加了新的命令结构(docker container <subcommand>),以在使用命令行时提供更结构化的用户体验。
据我所知,目前还没有任何官方声明放弃对旧式命令(如docker ps和其他命令)的支持,尽管可以合理地假设这可能在未来的某个时候发生。
这在blog post accompanying the release of Docker 1.13
在过去的几年里,Docker增加了许多功能,Docker CLI现在有很多命令(在撰写本文时有40个)。有些,像构建或运行是经常使用的,有些是比较模糊的,像暂停或历史。许多顶级命令会使帮助页面混乱,并使制表符完成变得更加困难。
在Docker 1.13中,我们将每个命令重新分组到与之交互的逻辑对象下。例如,list和startof container现在是docker container的子命令,history是docker image的子命令。

docker container list
docker container start
docker image history

字符串
这些更改使我们能够清理Docker CLI语法,改进帮助文本,并使Docker更易于使用。旧的命令语法仍然受支持,但我们鼓励每个人都采用新的语法。

piah890a

piah890a2#

docker ps是代表“docker进程状态”的简写,而docker container ls是更详细的docker container list的简写。
正如公认的答案所解释的那样,它们的工作方式没有区别,docker container ls是“较新”的命令,所以你可能更喜欢它。
这两个命令实际上默认只显示正在运行的容器,这使得第一个命令(docker ps)更令人困惑,因为该命令本身并没有真正显示“进程状态”。要查看 all 容器的状态,请为'all'添加-a选项(或使用--all),例如:
docker container ls -a

  • 更老 *

docker ps -adocker container ps -a

qgelzfjb

qgelzfjb3#

没有区别,至少对于Docker版本24.0.2。
如果运行以下命令:

docker container ls -h

字符串
你会得到一个手册,上面写着'docker ps'是'docker container ls'的别名:

的数据

相关问题