This article details methods for viewing Docker container startup commands. It focuses on using docker inspect for running and stopped containers, examining the Dockerfile's CMD and ENTRYPOINT, and exploring alternative approaches like docker logs a
There are several ways to view the startup commands of a Docker container, depending on whether the container is running or stopped, and the level of detail you need. For running containers, the most straightforward method is using the docker inspect
command. This command provides a wealth of information about a container, including its configuration and the command used to start it.
Specifically, you'll find the command under the Config.Cmd
field within the JSON output. If the container was started using an ENTRYPOINT
and a CMD
, Config.Cmd
will reflect the CMD
instruction. If only an ENTRYPOINT
was specified, Config.Cmd
will show the ENTRYPOINT
command. Keep in mind that this shows the original command; any changes made within the container after startup won't be reflected here.
For stopped containers, the information is still accessible through docker inspect
. However, you might need to use the container ID or name obtained from docker ps -a
(which lists all containers, including stopped ones).
Another less direct approach involves examining the Dockerfile used to build the image. The CMD
and ENTRYPOINT
instructions within the Dockerfile dictate the container's startup command. This method only provides the intended command, not necessarily the exact command used to launch a specific instance.
Besides docker inspect
, which we discussed above, several other methods can help determine the startup command, though with varying levels of detail and applicability:
docker logs
: While primarily for viewing container logs, docker logs <container_id>
might reveal clues about the initial command if the application itself logs such information at startup. This is indirect and unreliable, as it depends on the application's logging behavior.CMD
and ENTRYPOINT
instructions in the Dockerfile provides the intended startup command. This is useful for understanding the design of the container, but might not perfectly match the actual command used for a specific container instance if the container was started with different command-line options.docker-compose up
command reflects the command used to start the container. Checking your docker-compose.yml
file will show the command
section specified for the service.The ENTRYPOINT
command is part of the container image's definition and is not directly altered at runtime. To find the ENTRYPOINT
command, again, the docker inspect <container_id>
command is the most reliable method. Look for the Config.Entrypoint
field in the JSON output. This field contains the array representing the ENTRYPOINT
command. If no ENTRYPOINT
was specified in the Dockerfile, this field will be empty or null
. Remember that the ENTRYPOINT
is usually executed first, and then the CMD
(if present) is used as arguments to the ENTRYPOINT
.
No, you cannot directly see the exact command used to launch a specific Docker container after it has started using standard Docker commands. docker inspect
shows the original command specified in the CMD
instruction of the Dockerfile or the command provided when the container was created. Any modifications made to the container's process tree after it started are not tracked by Docker in a way that directly reveals the original invocation. You can indirectly infer information through logs or process listing within the container itself, but this won't give you the precise command-line arguments as passed to the docker run
command. The docker inspect
command gives you the closest approximation to the initial command.
The above is the detailed content of How to read the docker startup command. For more information, please follow other related articles on the PHP Chinese website!