hooyantsing's Blog

P29 CMD和ENTRYPOINT的区别

字数统计: 170阅读时长: 1 min
2020/11/24

【狂神说Java】Docker最新超详细版教程通俗易懂

区别

CMD:命令完整的被替换,在启动容器时需要写完整的命令。

ENTRYPOINT:命令追加,再启动容器时只需要追加参数即可。

测试CMD:

1
2
FROM centos
CMD ["ls","-a"]
1
2
3
4
5
6
7
# 构建镜像
docker build -f dockerfile-cmd -t cmdtest .
# 运行
docker run dd8e4401d27f -l
# 追加 -l 命令,报错
# 因为想要覆盖cmd命令,需要重写完整的命令 正确写法如下:
docker run dd8e4401d27f ls -al

测试ENTRYPOINT:

1
2
FROM centos
ENTRYPOINT ["ls","-a"]
1
2
3
4
# 构建对象
docker file -f dockerfile-entrypoint -t entrypointtest .
# 运行,正常运行。因为 -l 追加到 ls -a 上了。
docker run dd8e4401d27f -l
CATALOG
  1. 1. 区别