dockerfile小记

来源:互联网 发布:河源市民网络问政平台 编辑:程序博客网 时间:2024/06/03 22:06

1, CMD只能用1次


解释:CMD指令中指定的命令会在镜像运行时执行,在Dockerfile中只能存在一个,如果使用了多个CMD指令,则只有最后一个CMD指令有效。当出现ENTRYPOINT指令时,CMD中定义的内容会作为ENTRYPOINT指令的默认参数,也就是说可以使用CMD指令给ENTRYPOINT传递参数。

注意:RUNCMD都是执行命令,他们的差异在于RUN中定义的命令会在执行docker build命令创建镜像时执行,而CMD中定义的命令会在执行docker run命令运行镜像时执行,另外使用第一种语法也就是调用exec执行时,命令必须为绝对路径。

 

[root@iZj6c1rzo7o5c9lgii7jl6Z nginx]# cat DockerfileFROM centosMAINTAINER lanny Ma iher@foxmail.comRUN yum -y install epel-releaseRUN yum install -y nginxRUN echo "daemon off;" >> /etc/nginx/nginx.confRUN echo "hello boy!" >> /usr/share/nginx/html/index.htmlEXPOSE 80CMD ["nginx"][root@iZj6c1rzo7o5c9lgii7jl6Z nginx]# pwd/opt/dockerfile/nginx


2, 将日志输出到前台

# forward request and error logs to docker log collectorRUN ln -sf /dev/stdout /var/log/nginx/access.log \&& ln -sf /dev/stderr /var/log/nginx/error.log
https://github.com/nginxinc/docker-nginx/blob/53da9a295dfa6c666630a72d9c03dfbd1d2eb37d/mainline/stretch/Dockerfile

0 0
原创粉丝点击