Docker Tip #24: Difference between docker ps vs docker container ls
Docker 1.13+ introduced grouped commands to help organize a bunch of Docker commands. Both commands do the same thing.
If you run docker help
and are using Docker 1.13+ (which includes v17.03+)
you will see both “Management Commands” and “Commands” in the help text.
Management Commands:
...
container Manage containers
image Manage images
...
Commands:
...
ps List containers
run Run a command in a new container
...
The full output is much longer and if you look through the entire list of commands there are ~40 of them. It’s tough to navigate that list because those commands are associated to containers, images, networks, volumes and so on.
Docker realized that is not sustainable in the long term, so they added “Management Commands” which help categorize all of the commands and also make the commands themselves more consistent.
For example docker container ls
is the new way to do docker ps
. Sure it’s
more typing, but it’s a lot more clear on what it does. Likewise, now you can
run docker image ls
, docker network ls
or docker volume ls
. There’s
consistency across all of these commands.
Both versions of the commands do the same thing. I imagine long term, the
non-grouped up commands (such as docker run
) will be deprecated in favor
of docker container run
. There’s no sign of this happening soon, but if you use
Docker 1.13+ then you should try to use the newer syntax. It’s both more
descriptive and consistent.
In the Dive Into Docker course we use the new management commands.