我安装了一个Docker镜像,想要检查它的CMD命令。是否有CLI命令可以实现这一点? 举例来说,我希望它告诉我这个Docker镜像的CMD是["rails","server"]。
我安装了一个Docker镜像,想要检查它的CMD命令。是否有CLI命令可以实现这一点? 举例来说,我希望它告诉我这个Docker镜像的CMD是["rails","server"]。
docker inspect
命令。docker inspect --format='{{.Config.Cmd}}' <image:tag>
docker inspect -f '{{.Config.Cmd}}' <image:tag>
例如,它可用于“在Docker中列出运行/停止的容器的完整命令”,如此处所述。
正如user2915097和Lenormju在评论中指出的那样,另一种方法是使用docker history --no-trunc
:
docker history --no-trunc zenithar/nano-nginx | awk ' NR==2 {print}'
docker inspect -f "{{.Path}} {{.Args}} ({{.Id}})" $(docker ps -a -q)
。从this response无耻地拉取。docker inspect -f '{{.Config.Cmd}}' <image:tag>
方法是不正确的,因为这个命令返回的值可能是错误的。例如:$ docker inspect -f '{{.Config.Cmd}}' nginx:1.25.1-alpine
[nginx -g daemon off;]
daemon off;
是一个单个参数。这个信息在docker inspect
命令的输出中丢失了。$ docker history --no-trunc nginx:1.25.1-alpine | grep -m 1 -Po "(?<=CMD \[).+(?=\])"
"nginx" "-g" "daemon off;"
docker history --no-trunc <image:tag> | grep -m 1 -Po "(?<=CMD \[).+(?=\])"
docker history --no-trunc <image:tag> | grep -m 1 -Po "(?<=ENTRYPOINT \[).+(?=\])"
docker history
命令有一个--no-trunc
选项。@user2915097 - Lenormju--no-trunc
以增加可见性。 - VonC