编写CMD测试dockerfile文件

  1. #1.编写dockerfile文件
  2. FROM centos
  3. CMD ["ls", "-a"]
  4. #2.构建镜像
  5. docker build -f ./dockerfile -t cmd-test .
  6. #3.启动镜像
  7. docker run imageID/iamgeName

image.png
测试发现,启动镜像时追加的命令替换了CMD命令
image.png

编写ENTRYPOINT测试dockerfile文件

每个Dockerfile只能有一个ENTRYPOINT,如果指定了多个,只有最后一个被执行,而且一定会被执行

  1. FROM centos
  2. ENTRYPOINT ["ls", "-a"]
  1. # nginx 镜像
  2. ENTRYPOINT [ "/usr/sbin/nginx", "-g", "daemon off;" ]

image.png

总结

CMD命令会被启动容器时追加的命令替换执行, ENTRYPOINT命令不会被启动容器时追加的命令替换,而是合并执行

image.png