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