什么是dockerFile
-
是用来构建docker镜像的构建文件,是由一系列命令和参数组成的脚本
-
步骤
- 编写dockerFile-> docker build -> docker run
-
eg
-
FROM scratch MAINTAINER https://github.com/CentOS/sig-cloud-instance-images ADD centos-6-docker.tar.xz / LABEL org.label-schema.schema-version="1.0" \ org.label-schema.name="CentOS Base Image" \ org.label-schema.vendor="CentOS" \ org.label-schema.license="GPLv2" \ org.label-schema.build-date="20181006" CMD ["/bin/bash"]
-
scratch 是最 基础的镜像
-
MAINTAINER是通讯地址
-
dockerFile解析过程
- 约定
- 流程
- dockerFile、docker镜像、docker容器代表三个不同的阶段
- dockerFile是软件的原材料
- docker镜像是软件的交付品
- docker容器是软件的运行态
dockerFile保留字指令(体系结构)
- FROM 所基于的基础镜像
- MAINTAINER 作者的通讯地址
- RUN 容器构建时需要运行的命令
- EXPOSE 暴露出该镜像变成实例对外暴露的端口
- workdir 创建容器之后,默认的落脚点
- ENV 设置环境变量,之后可以在后序的指令中使用
- ADD 拷贝进镜像+解压缩
- copY 拷贝
- VOLUME 容器数据卷,指定容器中的数据卷目录
- CMD 指定一个容器启动时需要执行的命令
- 可以有多个命令,但只有最后一个生效
- CMD会被docker run后的参数替换
- ENTRYPOINT 和CMD都是一样,指定一个容器启动时需要执行的命令
- 不会被docker run参数替换,而是被追加组合
- ONBUILD
- 当构建一个被继承的dockerFIle时运行命令,父镜像在被子继承后的父镜像的onbuild被触发
- 意思就是,如果别人继承了我,它运行了,那ONBUILD这里的指令就会被触发执行
自定义centos的dockerFile
-
修改容器进入后的落脚点
-
安装vim和ifconfig
-
向外暴露80端口
-
FROM centos MAINTAINER https://blog.csdn.net/qq_34687559 ENV MYPATH /usr/local workdir $MYPATH RUN yum -y install vim RUN yum -y install net-tools EXPOSE 80 CMD echo "success building a image" CMD /bin/bash