How do we tell what command docker container will run after starting
To determine what command a container will run after it starts, you can examine the ENTRYPOINT
and CMD
instructions specified in the Dockerfile used to build the container image. These instructions define the default executable or command that will run when a container starts.
Understanding ENTRYPOINT and CMD
- ENTRYPOINT: Sets the command and arguments that will be executed when the container starts. It is intended to define the main purpose of the container.
- CMD: Provides default arguments for the
ENTRYPOINT
instruction. IfENTRYPOINT
is not specified,CMD
can also act as the command to run.
How to Check ENTRYPOINT and CMD
-
Dockerfile: If you have access to the Dockerfile, you can look for the
ENTRYPOINT
andCMD
instructions. Here is an example Dockerfile:FROM ubuntu:latest ENTRYPOINT ["python3"] CMD ["app.py"]
In this case, the container will run
python3 app.py
when it starts. -
Docker Inspect: If you do not have access to the Dockerfile but have the image or a running container, you can use the
docker inspect
command to retrieve this information.-
For an image:
docker inspect <image_name_or_id>
-
For a running container:
docker inspect <container_name_or_id>
Look for the
Config
section in the output, which will containEntrypoint
andCmd
fields. Here's an example output snippet:"Config": { "Cmd": [ "app.py" ], "Entrypoint": [ "python3" ], ... }
This output indicates that the container will run
python3 app.py
. -
Practical Examples
-
Using Docker Inspect:
Suppose you have a running container named
my_container
. To inspect it, you would run:docker inspect my_container
This command outputs detailed information about the container, including the command it will execute.
-
Example Output Interpretation:
[ { "Id": "c3d0bfc96c8f", "Config": { "Cmd": [ "app.py" ], "Entrypoint": [ "python3" ], ... }, ... } ]
From this, you can see that
python3 app.py
is the command executed when the container starts.