ENTRYPOINT 和CMD 的区别
Entrypoint
Entrypoint
指令用于设定容器启动时第一个运行的命令及其参数。
任何使用 docker run <image> 命令传入的参数都会附加在entrypoint
指令之后,并且用此命令传入的参数会覆盖在Dockerfile 中使用CMD指令设定的值。比如docker run <image> bash命令会将bash命令附加在entrypoint
指令设定的值的后面。
CMD / command
CMD
(Dockerfiles)/ command
指令的主要用意是设置容器的默认执行的命令。CMD
/ command
设定的命令会在entrypoint之后执行。
例如,如果你运行docker run <image>,接下来,你运行的镜像的Dokcerfiles中CMD指令配置的命令将会被执行。
CMD
/ command
只会在初始化容器时运行一次,如果 Dockerfile 中如果存在多个 CMD 指令,仅最后一个生效。
类似的的RUN指令是在 docker build时运行
Overriding CMD
你可以在使用命令行启动容器的时候,通过命令行传参的形式覆盖镜像Dockerfiles中的C