Difference between docker run and docker container run
DockerDocker Problem Overview
Can anyone help me in the understanding difference between docker run & docker container run?
when i do docker run --help & docker container run --help from docker cmd line. I see the following
Run a command in a new container.
Is there any difference in how they run the container internally or both are same doing same work?
As per https://forums.docker.com/t/docker-run-and-docker-container-run/30526. docker run is still the old one, which will be deprecated soon but same is not confirmed.
Docker Solutions
Solution 1 - Docker
They are exactly the same.
Prior to docker 1.13 the docker run
command was only available. The CLI commands were then refactored to have the form docker COMMAND SUBCOMMAND
, wherein this case the COMMAND is container
and the SUBCOMMAND is run
. This was done to have a more intuitive grouping of commands since the number of commands at the time has grown substantially.
You can read more under CLI restructured.
Solution 2 - Docker
> docker run no, we aren't even hiding it, it's staying as a permanent alias. > > The rest, not any time soon. Maybe in a year or two if we're good about converting all > the docs to the new form, and communicating the new canonical way of doing things.
So, they are exactly same, just format changed, see discusstion about this PR: https://github.com/moby/moby/pull/26025
Solution 3 - Docker
Maybe a bit late, but wanted to share a wider & cleaner image from The docker Handbook about the question:
Previously [...] the generic syntax for this command is as follows:
docker run <image name>
Although this is a perfectly valid command, there is a better way of dispatching commands to the docker daemon.
Prior to version 1.13, Docker had only the previously mentioned command syntax. Later on, the command-line was restructured to have the following syntax:
docker <object> <command> <options>
In this syntax:
> - <object>
indicates the type of Docker object you'll be manipulating. This can be a container
, image
, network
or volume
object.
> - <command>
indicates the task to be carried out by the daemon, that is the run command.
> - <options>
can be any valid parameter that can override the default behavior of the command, like the --publish
option for port mapping.
Thus,
docker container run
:
container
is the objectrun
is the command to be executed by Docker Daemon.