dockerfile指令详解

2019-07-12 分类:docker, 虚拟化 阅读(61) 评论(0)

dockerfile指令:

 

FROM:指定基础镜像

#语法示例
FROM centos
FROM centos:6.9

#不加tag标签,默认是latest

MAINTAINER:(可选)维护者信息

#语法示例
MAINTAINER my name is soulchild.

LABLE:(可选)标签、描述信息,可以写成多个LABLE,建议只写一个,可以使用\符号

#语法示例
LABEL version="1.1" \ 
    description="this is example"

RUN:构建镜像时执行的命令,每一个RUN都会生成一层镜像,可以使用&&和\来解决多层臃肿的问题。

#语法示例
RUN yum install -y openssh-server && \
    service sshd start && \
    echo '123456' | passwd root --stdin

ADD:将文件复制到镜像中,如果文件格式是tar包,会自动解压,还可以访问网络资源

#语法示例
ADD /root/test.tar.gz /opt/
ADD http://xxx.xxx.com/download/xx.zip /opt

COPY:将文件复制到镜像中

#语法示例
COPY /root/kod.conf   /etc/nginx/conf.d/kod.conf

ENV:设置环境变量

#语法示例
#1.一次只能设置一个
ENV a 123
#2.一次可以设置多个,支持\换行
ENV b=456 c=789

#运行容器时需要指定-e参数

WORKDIR:切换工作目录,相当于cd

#语法示例
WORKDIR /opt

EXPOSE:端口映射

#语法示例
EXPOSE 80 443
EXPOSE 22/tcp  23/udp

#需要在容器运行时指定-P参数,才会将宿主机随机端口映射到容器发布的端口

VOLUME:设置卷,挂载目录

#语法示例
VOLUME /usr/share/nginx/html

#启动容器时会自动生成一个卷,可以通过docker volume [command],查看卷的详细信息

CMD:容器启动后的初始命令,此参数只能出现一次。如果在运行容器时指定运行命令了,此参数无效,会被替换掉。

#格式:
CMD ["命令","参数1","参数2"]

#语法示例
CMD ["/usr/sbin/sshd","-D"]

ENTRYPOINT:启动容器时如果手动指定了一个命令,会被追加到最后当作参数而执行,

#格式:
ENTRYPOINT ["命令","参数1","参数2"]

#语法示例
ENTRYPOINT ["/bin/bash","init.sh"]

#容器运行
docker run -d entrypoint:test hello
实际上运行的初始命令是/bin/bash init.sh hello

 

 

 

 

标签:

您可能也喜欢:

将registry仓库镜像迁移至harbor中

环境: 10.0.0.11       harbor 10.0.0.12       registry 实现思路: 获取registry仓库镜像-->获取registry仓库镜像的标签-->每个镜像打好harbor仓库标签-->上传至harbor仓库   1.准备工具jq...

more

给harbor私有仓库配置https

自签名证书: https://www.cnblogs.com/Rcsec/p/8479728.html 进入到harbor目录操作: 1.编辑harbor.yml修改以下部分,https部分需要取消注释 hostname: soulchild.cn # https related config ...

more

docker升级新版本yum方式

1.删除旧版本 yum remove docker yum remove docker-common 2.安装docker源 curl -o /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/cen...

more

欢迎新朋友你的到来!
还没有人抢沙发呢~
昵称
邮箱
网站

登录

忘记密码 ?

切换登录

注册