文档中说,command是覆盖容器启动后默认执行的命令。http://wiki.jikexueyuan.com/project/docker-technology-and-combat/yaml_file.html
command: bundle exec thin -p 3000
那么,容器默认执行命令在哪里查看?能否以Docker Hub官方nginx镜像为例说一下:https://hub.docker.com/r/library/nginx/
闭关修行中......
docker run nginx && docker ps --no-trunc 在command那一列就是默认执行的命令
docker run nginx && docker ps --no-trunc
如果有Dockerfile 的话, 一般最后一行CMD 或 ENTRYPOINT的就是了
CMD
ENTRYPOINT
CMD 的命令可以被docker run 后面的命令覆盖, 但ENTRYPOINT的不会
docker run
不管CMD 还是ENTRYPOINT 在同一个Dockerfile有多条时, 只会执行最后一条
e.g : nginx:stable-alpine Dockerfile
比如这个(docker run --rm nginx:stable-alpine /bin/sh) 你会发现nginx 没有运行docker-compose.yml 中的command就是 docker run 后面指定的 /bin/sh
/bin/sh
docker run nginx && docker ps --no-trunc
在command那一列就是默认执行的命令如果有Dockerfile 的话, 一般最后一行
CMD
或ENTRYPOINT
的就是了CMD 的命令可以被
docker run
后面的命令覆盖, 但ENTRYPOINT的不会不管CMD 还是ENTRYPOINT 在同一个Dockerfile有多条时, 只会执行最后一条
e.g :
nginx:stable-alpine Dockerfile
比如这个(docker run --rm nginx:stable-alpine /bin/sh) 你会发现nginx 没有运行
docker-compose.yml 中的command就是 docker run 后面指定的
/bin/sh