DockerFile 快速入门
DockerFile是什么?
Dockerfile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本。
Dockerfile和Docker镜像的关系就像是java源代码和执行文件class的关系。
使用DockerFile构建镜像的步骤。
编写DockerFile文件—> docker build —> docker run
长什么样?
编写DockerFile内容的注意事项
- 每条保留字指令都必须为大写字母,而且后面必须跟随至少一个参数。
- 指令从上到下,顺序执行
- '#'表示注释
- 每条指令都会创建一个新的镜像层,并对镜像进行提交。
Docker执行DockerFile的大致流程
- docker从基础镜像运行一个容器
- 执行一条指令并对容器做出修改
- 执行类似
docker commit
的操作,提交一个新的镜像层 - docker在基于新提交的镜像运行一个新的容器
- 执行DockerFile中的下一条指令,直到所有指令执行完成
DockerFile的保留字指令
FROM #基础镜像,当前新的镜像是基于那个镜像
MAINTTAINER # 维护镜像人的姓名和邮箱(作者)
RUN # 容器构建时需要执行的命令
EXPOSE # 当前容器对外暴露的端口号
WORKDIR # 指定在创建容器后,终端默认登录进来的工作目录
ENV # 用来在构建镜像过程中设置环境变量
ADD # 复制一个文件并解压缩
COPY #单纯复制一个文件
VOLUME #容器数据卷,用于数据保存和持久化工作
CMD # 指定一个容器启动后,运行的命令(可以有多个CMD指令,但是只有最后一个生效。CMD会被docker run之后的参数替换)
ENTRYPOINT #指定一个容器启动后,运行的命令
ONBUILD #类似于触发器,当构建一个被继承的Dockerfile时运行命令,父镜像在被子镜像继承后,父镜像的onbuild会被触发
案例
1.编写Dockerfile
FROM centos #基础镜像
MAINTTAINER zjj<1161493927@qq.com> #作者和邮箱
ENV MYDIVPATH /usr/local # 环境变量
WORKDIR $MYDIVPATH #使用定义的环境变量作为终端登录进来的默认目录
RUN yum -y install vim #执行的命令
RUN yum -y install net-tools #执行的命令
EXPOSE 81 #对外暴露的端口
CMD echo "success" # 指定一个容器启动后,运行的命令
CMD /bin/bash # 指定一个容器启动后,运行的命令
- 通过Dockerfile构建Docker镜像
docker build -f 构建的DockerFile文件位置 -t 生成的镜像文件名 . #最后有个点别忘了,代表当前目录
#例子
docker build -f /mydocker/Dockerfile -t zjj/mycentos:1.1 .
- 查看
docker images
- 运行
docker run -it 新镜像名:版本号
- 查看镜像的变更历史
docker history 镜像名或镜像ID
转载请注明出处,该博客只为交流学习。