标签:环境变量 echo 网上 display 理解 用户 常用 poi 不能
最近又在写Dockerfile,在写的过程中对CMD又测试了很多,对应的还有个ENTRYPOINT,也在网上找了很多资料,大概总结如下
先来大概说下Dockerfile中可以执行命令的指令,以下非原创,有出处
Dockerfile中RUN,CMD和ENTRYPOINT都能够用于执行命令,下面是三者的主要用途:
docker run
命令后面的命令行参数替换docker run
时指定了其他命令)我们可用两种方式指定 RUN、CMD 和 ENTRYPOINT 要运行的命令:Shell 格式和 Exec 格式:
CMD 和 ENTRYPOINT 推荐使用 Exec 格式,因为指令可读性更强,更容易理解。RUN 则两种格式都可以。
作者:伊凡的一天 链接:https://www.jianshu.com/p/f0a0f6a43907 来源:简书 简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
docker CMD 有三种形式 CMD ["executable","param1","param2"] 使用 exec 执行,推荐方式; CMD command param1 param2 在 /bin/sh 中执行,提供给需要交互的应用; CMD ["param1","param2"] 提供给 ENTRYPOINT 的默认参数; 指定启动容器时执行的命令,每个 Dockerfile 只能有一条 CMD 命令。如果指定了多条命令,只有最后一条会被执行。 如果用户启动容器时候指定了运行的命令,则会覆盖掉 CMD 指定的命令。
shell 格式的话,实际的命令会被包装为 sh -c 的参数的形式进行执行。比如:
CMD echo $HOME
在实际执行中,会将其变更为:
CMD [ "sh", "-c", "echo $HOME" ]
标签:环境变量 echo 网上 display 理解 用户 常用 poi 不能
原文地址:https://www.cnblogs.com/hh2737/p/11096872.html