Dockerfile 是用来构建 docker 镜像的描述文件。
- 每个指令必须都是大写字母;
- 指令从上到下顺序执行;
- 使用 # 号作为注释;
- 每个指令多会创建一个新的层并提交;
编写 Dockerfile 文件
vim Dockerfile
# 镜像使用的基础镜像
FROM centos
# 指明镜像的作者
MAINTAINER wu<wuyuanhui@qq.com>
# 构建时设置环境变量
ENV MYPATH /usr/local
# 镜像的工作目录,启动容器后进入的目录
WORKDIR $MYPATH
# 镜像构建时需要运行的命令
RUN yum -y install vim
RUN 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 $MYPATH
CMD ["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/bash
pwd
ifconfig
vim test.txt
# 查看运行容器时自动挂载的数据卷 volume01, volume02
ls -l
exit
# 查看镜像构建历史
docker history image_id
# 查看容器详情和数据卷挂载信息
docker inspect my_centos01
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。