root@9-134-239-95:dockerfile# docker history mysql:5.7 IMAGE CREATED CREATED BY SIZE COMMENT 8b43c6af2ad0 2 days ago /bin/sh -c #(nop) CMD ["mysqld"] 0B <missing> 2 days ago /bin/sh -c #(nop) EXPOSE 3306 33060 0B <missing> 2 days ago /bin/sh -c #(nop) ENTRYPOINT ["docker-entry… 0B <missing> 2 days ago /bin/sh -c ln -s usr/local/bin/docker-entryp… 34B <missing> 2 days ago /bin/sh -c #(nop) COPY file:345a22fe55d3e678… 14.5kB <missing> 2 days ago /bin/sh -c #(nop) VOLUME [/var/lib/mysql] 0B <missing> 2 days ago /bin/sh -c { echo mysql-community-server m… 313MB <missing> 2 days ago /bin/sh -c echo 'deb http://repo.mysql.com/a… 55B <missing> 2 days ago /bin/sh -c #(nop) ENV MYSQL_VERSION=5.7.36-… 0B <missing> 2 days ago /bin/sh -c #(nop) ENV MYSQL_MAJOR=5.7 0B <missing> 2 days ago /bin/sh -c set -ex; key='A4A9406876FCBD3C45… 1.84kB <missing> 2 days ago /bin/sh -c apt-get update && apt-get install… 52.2MB <missing> 2 days ago /bin/sh -c mkdir /docker-entrypoint-initdb.d 0B <missing> 2 days ago /bin/sh -c set -eux; savedAptMark="$(apt-ma… 4.17MB <missing> 2 days ago /bin/sh -c #(nop) ENV GOSU_VERSION=1.12 0B <missing> 2 days ago /bin/sh -c apt-get update && apt-get install… 9.34MB <missing> 2 days ago /bin/sh -c groupadd -r mysql && useradd -r -… 329kB <missing> 3 days ago /bin/sh -c #(nop) CMD ["bash"] 0B <missing> 3 days ago /bin/sh -c #(nop) ADD file:3c54ad257f2e04f72… 69.3MB
CMD和ENTRYPOINT 的区别
测试 cmd
1 2 3 4 5 6 7 8 9 10 11 12
# 构建dockerfile FROM centos CMD ["ls","-a"] # 构建镜像 docker build -f cm_test -t cmdtest . # 执行 docker run -it bef91298cd9e # 想追加一个命令 -l docker run bef91298cd9e -l docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: starting container process caused "exec: \"-l\": executable file not found in $PATH": unknown. ERRO[0000] error waiting for container: context canceled # cmd 的情况下,如果只追加 -l,那就是替换了 CMD ["ls","-a"] 命令,-l 不是一个命令所以报错
1 2 3 4 5 6 7
# 构建 dockerfile FROM centos ENTRYPOINT ["ls", "-a"] # 构建镜像 docker build -f entrypoint_test -t entrypoint:0.1 # 执行 docker run entrypoint:0.1 # 可以追加命令 docker run entrypoint:0.1 -l