(五)docker=>Dockerfile篇(自动化制作docker image)

5.Dockerfile

Dockerfile类似脚本,使用自动化的方式将docker镜像实现出来。
docker build -t [镜像名]:[版本号][Dockerfile所在目录]
-t 指定构建后的镜像信息,
docker build -t nginx:v0.2 /opt/dockerfile/nginx/
Dockerfile指令:
FROM 有效的镜像名称,如果本地没有,从远程仓库pull。如果远程没有,报错失败
MAINTAINER dockerfile文件的维护者信息
RUN 镜像构建时运行的命令。如果命令过长,可使用\来换行
RUN [ “/bin/bash “,”-c “,“command” ]
EXPOSE docker容器对外暴露的端口
CMD 容器启动时默认执行的命令。一个dockerfile只能有一条CMD命令,如果指定了多条,执行最后一条。如果使用docker run运行时加入了指令,会覆盖CMD命令
“/usr/sbin/nginx” nginx命令
“-g” 设置配置文件外的全局指令
“daemon off;” 后台守护程序开启方式 关闭
CMD [”/usr/sbin/nginx”,"-g",“daemon off;”]
ENTRYPOINT 类似于CMD,都是容器启动后执行的命令,但不会被docker run提供的指令覆盖。一个dockerfile只能有一个ENTRYPOINT,当指定多个时,最后一个生效。想要docker run时覆盖,可使用–entrypoint。
ENTRYPOINT ["/usr/sbin/nginx","-g",“daemon off;”]
CMD ENTRYPOINT结合使用
任何docker run设置的命令参数或者CMD指令的命令,都将作为ENTRYPOINT 指令的命令参数,追加到ENTRYPOINT指令之后
ADD 将宿主机文件拷贝到容器目录,如果时可识别压缩包,会进行解压(tar)
ADD [“a.txt”, “/home/go/a.txt”]
COPY 类似ADD,没有解压功能
VOLUME 可在镜像中创建挂载点,通过该镜像创建的容器都有此挂载点
VOLUME ["/var/lib/tomcat7/webapps/"]
ENV 设置环境变量
ENV key=value PATH=111 PATH=222
WORKDIR 相当于cd,可以多次切换。
USER、ARG
USER daemon
指定运行容器时的用户名和UID,后续的RUN 指令也会使用这里指定的用户。如果不输入任何信息,表示默认使用root 用户
ARG [=]
ARG 指定了一个变量在docker build 的时候使用,可以使用–build-arg =来指定参数的值,不过如果构建的时候不指定就会报错。
触发器指令:
ONBUILD [ “echo",“hello” ]
基于此dockerfile制作的镜像A,不执行命令
基于镜像A值作的镜像B,启动镜像B,会执行命令。隔代执行
–no-cache 不使用缓存构建镜像

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值