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
字符串
3条答案
按热度按时间6yt4nkrj1#
docker ps
和docker 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 CLI语法,改进帮助文本,并使Docker更易于使用。旧的命令语法仍然受支持,但我们鼓励每个人都采用新的语法。
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 -a
或docker container ps -a
qgelzfjb3#
没有区别,至少对于Docker版本24.0.2。
如果运行以下命令:
字符串
你会得到一个手册,上面写着'docker ps'是'docker container ls'的别名:
的数据