实际生产中,Docker容器创建(或启动)时,默认即启动必要的服务进程,这种用法非常常见。容器中默认即启动的服务往往作为容器的第一个进程启动。如docker run命令创建Tomcat容器时即启动容器中的Tomcat服务。Docker提供了有多种方式实现该特性。
1.执行一个带参数的命令
创建容器时,如果希望默认即执行一个带参数的命令mycommand myparam,利用Dockerfile的ENTRYPOINT和CMD,以及docker run命令的参数,可以有如下多种实现。
1) 方法一,通过Dockerfile的CMD
CMD ["mycommand"] ["myparam"]
首先,通过Dockerfile构建出镜像myImage:latest。这样,在启动容器时,只需要执行docker run myImage:latest命令即可。
2) 方法二,通过Dockerfile的ENTRYPOINT
ENTRYPOINT ["mycommand", "myparam"]
首先,通过Dockerfile构建出镜像myImage:latest。这样,在启动容器时,只需要执行docker run myImage:latest命令即可。
3) 方法三,通过Dockerfile的ENTRYPOINT和CMD
ENTRYPOINT ["mycommand"]
CMD ["myparam"]
首先,通过Dockerfile构建出镜像myImage:latest。这样,在启动容器时,只需要执行docker run myImage:latest命令即可。
4) 方法四,通