"docker ps"和"docker container ls"之间有区别吗?

Mar*_*oma 26 docker

文档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
Run Code Online (Sandbox Code Playgroud)

hel*_*ert 38

docker ps和之间没有区别docker container ls.docker container <subcommand>在Docker 1.13中添加了新的命令结构(),以便在使用命令行时提供更结构化的用户体验.

据我所知,还没有任何官方声明放弃对旧式命令(如docker ps和其他人)的支持,尽管可能有理由认为这可能会在未来某个时候发生.

随着Docker 1.13发布的博客文章中描述了这一点:

Docker在过去几年中已经发展了许多功能,Docker CLI现在有很多命令(在撰写本文时有40个).有些像构建或运行一样被使用很多,有些比较模糊,比如暂停或历史.许多顶级命令混乱帮助页面并使标签完成更难.

在Docker 1.13中,我们重新组合了每个命令,使其位于与其交互的逻辑对象下.例如,list和startof容器现在是docker容器的子命令,history是docker image的子命令.

docker container list
docker container start
docker image history
Run Code Online (Sandbox Code Playgroud)

这些更改让我们可以清理Docker CLI语法,改进帮助文本并使Docker更易于使用.仍然支持旧的命令语法,但我们鼓励每个人采用新的语法.


Chr*_*row 21

docker ps是代表“docker process status”的docker container ls简写,而是更详细的简写docker container list

正如接受的答案所解释的那样,它们的工作方式没有区别,并且docker container ls是“较新”的命令,因此您可能更喜欢它。

默认情况下,这两个命令实际上仅显示正在运行的容器,这使得第一个 ( docker ps) 更加混乱,因为该命令本身并没有真正显示“进程状态”。要查看所有容器的状态,请添加-a“all”(或使用--all)选项,例如

docker container ls -a

年长的

docker ps -a 或者 docker container ps -a