Dockerfile构建镜像
什么是Dockerfile
dockerfile是一个文本文档,其中包含用于可以在命令行上调用组装镜像的所有命令。也就是说dockerfile是用来构建docker镜像的文件。
构建一个镜像的主要步骤
- 编写一个dockerfile文件
- docker build 构建成一个镜像
- docker run 运行镜像
- docker push 发布镜像
为什么要使用Dockerfile
前面也说到了dockerfile使用来构建docker镜像的文件,由于实际运用中面对各种各样的需求,单一功能的镜像肯定是满足不了。就需要在原来的基础上加入各种功能的镜像,然后构建成功能丰富满足目前需求的镜像。如图:
所以说Dockerfile的核心作用就是打包构建我们自己生产运用的镜像。
Dockerfile常用命令
可以参考Docker官方的[Dockefile参考]
# DockerFile常用指令 FROM # 基础镜像,一切从这里开始构建 MAINTAINER # 镜像是谁写的, 姓名+邮箱 RUN # 镜像构建的时候需要运行的命令 ADD # 添加内容 添加同目录 WORKDIR # 镜像的工作目录 VOLUME # 挂载的目录 EXPOSE # 保留端口配置 CMD # 指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代。 ENTRYPOINT # 指定这个容器启动的时候要运行的命令,可以追加命令 ONBUILD # 当构建一个被继承 DockerFile 这个时候就会运行ONBUILD的指令,触发指 令。 COPY # 类似ADD,将我们文件拷贝到镜像中 ENV # 构建的时候设置环境变量
实战测试-创建一个自己的centos
通过编写Dockerfile文件来制作我们自己的Centos镜像,在官方给的Centos中没有vim和net-tools。所以我们将vim和net-tools添加上。
- 在/home 目录下创建一个dockerfile文件,饭后编写该文件
madir Dockerfile vim mydockerfile
2.编写dockerfile文件
FROM centos MAINTAINER cheng<1204598429@qq.com> ENV MYPATH /usr/local WORKDIR $MYPATH RUN yum -y install vim RUN yum -y install net-tools EXPOSE 80 CMD echo $MYPATH CMD echo "-----end----" CMD /bin/bash
- 构建镜像
docker build -f mydockerfile -t mycentos:0.1 .
- 最后查看镜像是否构建成功,docker images