Dockerfile 是用来构建 docker 镜像的形容文件。
- 每个指令必须都是大写字母;
- 指令从上到下程序执行;
- 应用 # 号作为正文;
- 每个指令多会创立一个新的层并提交;
编写 Dockerfile 文件
vim Dockerfile
# 镜像应用的根底镜像FROM centos# 指明镜像的作者MAINTAINER wu<wuyuanhui@qq.com># 构建时设置环境变量ENV MYPATH /usr/local# 镜像的工作目录,启动容器后进入的目录WORKDIR $MYPATH# 镜像构建时须要运行的命令RUN yum -y install vimRUN yum -y install net-tools# 增加压缩包,会主动解压ADD apache-tomcat-xxx.tar.gz /usr/local/# 相似ADD指令,将文件拷贝到镜像中COPY readme.txt /usr/local/readme.txt# 指定对外的裸露端口EXPOSE 80# 匿名挂载数据卷VOLUME ["volume01","volume02"]# 容器启动时须要运行的命令,多个CMD命令只有最初一个会失效# CMD中的命令能够被docker run的命令齐全代替CMD echo $MYPATHCMD ["ls","-a"]# 容器启动时须要运行的命令,能够被用于追加命令# ENTRYPOINT ["ls","-a"]# 输入一行内容CMD echo "---END---"# 进入控制台CMD /bin/bash
应用 Dockerfile 构建镜像
# 构建镜像# -f 指定应用的Dockerfile文件,-t 指定生成镜像的版本,. 镜像放在当前目录docker build -f /home/Dockerfile -t my_centos:1.0 .# 查看所有镜像docker images# 运行容器,默认会去找最新版,所以须要指定版本docker run -it --name my_centos01 my_centos:1.0 /bin/bashpwdifconfigvim test.txt# 查看运行容器时主动挂载的数据卷 volume01, volume02ls -lexit
# 查看镜像构建历史docker history image_id# 查看容器详情和数据卷挂载信息docker inspect my_centos01