run|cmd|entrypoint
RUN 执行命令并创建新的image layer
CMD 设置容器启动后默认执行的命令和参数
ENTRYPOINT 设置容器启动时运行的命令
Shell格式
RUN agt-get install -y vim CMD echo "xx" ENTRTPOINT echo "xx"
Exec格式 (单纯的执行命令,不是在shell中运行;可以指定bash) 命令的变量不会被替换
RUN ["apt-get","install","-y","vim"]
EXNTRYPOINT ["/BIN/BASH","-c","echo hello $name"]
cmd
容器启动时默认执行的命令
如果docker run指定了其他命令,cmd命令会被忽略
如果定义了多个CMD,只有最后一个会执行
entrypoint
让容器以应用程序或者服务的形式运行
不会被忽略,一定会执行