Dockerfile详解

通过Dockerfile可以生产docker镜像

基础镜像信息

<!-- --读取的镜像源 -->
FORM image/image:tag
例:FORM centos:7.0

维护者信息

<!-- --维护者的信息 -->
MAINTAINER name
例:MAINTEAINER zhanghaolei

<!-- --镜像的标签--LABEL会继承基础镜像的LABEL -->
LABEL key=value
例 LABEL version=1.0

镜像操作指令

<!-- --类型与scp操作,可以拷贝文件,也可以请求链接,操作压缩文件时自动解压 -->
ADD <src>... <dest>
例 ADD test /User/user

<!-- --文件拷贝操作,COPY只能操作本地文件 -->
COPY <src>... <dest>
例 ADD test /User/user

<!-- --指定容器暴露的端口,宿主机和容器的端口映射需要启动容器时指定 -->
EXPOSE <port>/<tcp/udp>
例 EXPOSE 80 443

<!-- --定义变量 -->
ENV key=value
例 ENV test=test1 case=case1

<!-- 在Dockerfile中使用变量的方式 -->
$varname
${varname}
${varname:-default value}
$(varname:+default value}
第一种和第二种相同
第三种表示当变量不存在使用-号后面的值
第四种表示当变量存在时使用+号后面的值(当然不存在也是使用后面的值)


<!-- 容器构建时运行指定的命令,可执行文件,可直接执行shell命令 -->
RUN command/RUN ["executable","param1","param2"]
例 RUN cd/User/user 
例 RUN ["pull.sh","update"]

容器启动时执行命令

<!-- --容器运行时指定的命令 -->
ENTRYPOINT ["executable","param1","param2"]
ENTRYPOINT command
例 ENTRYPOINT ["pull.sh","update"]

<!-- --容器运行时指定的命令 -->
CMD ["executable","param1","param2"]
CMD [param1","param2"]
CMD command
例 CMD ["pull.sh","update"]

<!-- --文件挂载命令 -->
VOLUME ["/data"]
例 VOLUME /var/log
例 VOLUME ["var/log"]
例 VOLUME /var/log /var/db

<!-- --设置启动容器的用户,可以是用户名或UID -->
USER daemo 
USER UID
例 USER zhanghaolie

<!-- --容器内cd操作 -->
WORKDIR /path/workdir
例 WORKDIR $path/user

<!-- --构建容器时增加参数 -->
ARG name=value
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值