设置容器运行命令

最近更新时间:2021-03-03 10:31:49

查看PDF

在默认的情况下,镜像会运行默认的命令,如果我们想运行一个特定的命令或重写镜像的默认值,这里需要使用到以下三个设置:

  • 工作目录(workingDir):指定运行命令的工作目录。
  • 运行命令(command):控制镜像运行的实际命令。
  • 运行参数(args):传递给运行命令的参数。

工作目录说明

指定运行命令的工作目录。若镜像中未指定工作目录,且在控制台未指定,则默认为"/"。

设置容器启动时运行命令和参数

Docker 的镜像拥有存储镜像信息的相关元数据,如果不提供运行命令和参数,容器运行会运行镜像制作时提供的默认的命令和参数,Docker 原生定义这两个字段为 “ Entrypoint ” 和 " CMD "。详情可查看 Docker的 EntrypointCMD说明。

如果要覆盖默认的Entrypoint 与 CMD,需要遵循如下规则:

  • 如果在容器配置中没有设置command 或者 args,那么将使用Docker镜像自带的命令及参数。
  • 如果在容器配置中只设置了command但是没有设置args,那么容器启动时只会执行该命令,Docker镜像中自带的命令及其参数会被忽略。
  • 如果在容器配置中只设置了args,那么Docker镜像中自带的命令会使用该新入参作为其执行时的参数。
  • 如果在容器配置中同时设置了command 与 args,那么Docker镜像中自带的命令及其入参会被忽略。容器启动时只会执行配置中设置的命令,并使用配置中设置的入参作为命令的参数。

下表涵盖了各类设置场景:

镜像Entrypoint 镜像CMD 容器command 容器args 最终执行
[touch] [/usr/test] 未设置 未设置 [touch /usr/test]
[touch] [/usr/test] [mkdir] 未设置 [mkdir]
[touch] [/usr/test] 未设置 [opt/test] [touch /opt/test]
[touch] [/usr/test] [mkdir] [opt/test] [mkdir /opt/test]

文档内容是否对您有帮助?

根本没帮助
文档较差
文档一般
文档不错
文档很好

在文档使用中是否遇到以下问题

内容不全,不深入
内容更新不及时
描述不清晰,比较混乱
系统或功能太复杂,缺乏足够的引导
内容冗长

更多建议

0/200

评价建议不能为空

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

问题反馈