14 RUN
功能:用于指定docker build过程中运行的程序,其可以是任何命令
格式:
RUN <comand> 或
RUN “<excutable>”, <parm1>”, <parm2>”
1、第一种格式中,<comand>通常是一个shel命令,且以“/bin/sh -c”来运行它,这意味着此进程在容器中的PID不为1,不能接收Unix信号,因此,当使用docker stop <container>命令停止容器时,此进程接收不到SIGTERM信号;
2、第二种语法格式中的参数是一个JSON格式的数组,其中<excutable>为要运行的命令,后面的<parmN>为传递给命令的选项或参数;然而,此种格式指定的命令不会以“/bin/sh -c”来发起,因此常见的shel操作如变量替换以及通配符(?,*等)替换将不会进行;不过,如果要运行的命令依赖于此shel特性的话,可以将其替换为类似下面的格式。
RUN “/bin/bash”, -c”, <excutable>”, <parm1>”
注意:json数组中,要使用双引号
示例:
vim Dockfile
docker build -t tinyhttpd:v9 ./
docker run -name tinyweb1 -rm tinyhttpd:v9 lscd /usr/local/src
学员评价