赞
踩
说明:
- 一个 Dockerfile 只有一个 CMD 指令,只有最后一个 CMD 指令生效
- 使用 docker run -d xxx CMD 命令是可以覆盖 Dockerfile 中的 CMD 指令的
# exec 方式, 首选方式 CMD ["可执行命令", "参数1", "参数2"...]
CMD ["executable","param1","param2"]
# 为 ENTRYPOINT 提供默认参数
CMD ["param1","param2"]
# shell 形式 CMD 命令 参数1 参数2
CMD command param1 param2
FROM ubuntu
# CMD 和 ENTRYPOINT 作为唯一入口,写多个,只有最后一个生效
# shell方式
CMD ping bing.com
# exec方式
CMD [ "sh", "-c", "echo $HOME" ]
docker build -t test --force-rm --no-cache .
# --rm 表示容器退出,自动删除
docker run -it --rm test

说明:
- 一个 Dockerfile 只有一个 ENTRYPOINT 指令,只有最后一个 ENTRYPOINT 指令生效
# exec 格式
ENTRYPOINT ["executable", "param1", "param2"]
# shell 格式
ENTRYPOINT command param1 param2
FROM ubuntu
# CMD 和 ENTRYPOINT 作为唯一入口,写多个,只有最后一个生效
# shell方式
ENTRYPOINT ping baidu.com
# exec方式
ENTRYPOINT [ "sh", "-c", "echo $HOME" ]
docker build -t test --force-rm --no-cache .
docker run -it --rm test

FROM ubuntu
CMD ["ls","-a"]
docker build -t test --force-rm --no-cache .
# 覆盖 ls -a; -l命令是不存在的,所以会报错
docker run -it --rm test -l

FROM ubuntu
ENTRYPOINT ["ls","-a"]
docker build -t test --force-rm --no-cache .
# 会追加命令 相当于执行 ls -a -l
docker run -it --rm test -l

`
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。