初识Dokerfile
Dockerfile是用来构建docker镜像的构建文件,是一种命令脚本
通过Dockerfile可以生成镜像,镜像是一层一层的,脚本是一个个的命令每个命令都是一层
dockerfile指令介绍
# 注意:指令全部大写,每个命令就相当于镜像的一层
FROM # 基础镜像,一切从这里开始构建
MAINTAINER # 镜像是谁写的,姓名+邮箱
RUN # 镜像构建的时候需要执行的命令
ADD # 添加内容,详解:https://www.cnblogs.com/sanduzxcvbnm/p/13821268.html
WORKDIR # 镜像的工作目录
VOLUME # 挂载目录
EXPOSE # 暴露端口
CMD # 指定容器启动的时候要运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT # 指定容器启动的时候要运行的命令,可以追加命令
COPY # 类似ADD,将我们的文件拷贝到镜像中
ENV # 构建的时候设置环境变量
ARG # 定义构建镜像时需要的参数,详解:https://blog.csdn.net/taiyangdao/article/details/73310434
通过案例体验Dockerfile
- 创建一个文件夹存放dockerfile文件
mkdir docker_test_volume
- 在文件夹内创建dockerfile文件用来写命令脚本
vim dockerfile01
- 脚本内容
FROM centos # 基于centos镜像
VOLUME ["volume01","volume03"] # 容器数据卷匿名挂载
CMD echo "---end----" # 输出
CMD /bin/bash # 以/bin/bash控制进入
- 执行脚本
docker build -f /home/yl01/docker_test_volume/dockerfile01 -t yl/centos:1.0 . # -f:脚本路径,-t:生成镜像名,1.0:版本,.:当前路径
- 查看镜像
docker images
可以看到刚才生成的镜像
- 启动镜像
docker run -it 586d09d227c7 /bin/bash
- 查看是否挂载成功
ls -l # 可以看到挂载目录
- 进入容器内挂载目录创建文件
cd volume01
touch test.txt
- 新建窗口查看容器信息
docker inspect 2d7f00e8bd26
- 找到对应主机的挂载目录
- 进入对应主机目录查看是否生成文件
cd /var/lib/docker/volumes/825ea86b0bf90b3a29f5e13f6ab7e2c98ef5d2255cb4711c21952c8f2cbb81b2/_data
可以看到主机目录下也生成了test.txt文件,跟容器内目录是同步的