docker学习3(最后篇)
docker容器数据卷
介绍
当我们在使用docker容器的时候,会产生一系列的数据文件,这些数据文件在我们关闭docker容器时是会消失的,但是其中产生的部分内容我们是希望能够把它给保存起来另作用途的,Docker将应用与运行环境打包成容器发布,我们希望在运行过程钟产生的部分数据是可以持久化的的,而且容器之间我们希望能够实现数据共享
特点:
1.数据卷可以在容器之间共享或重用数据
2.数据卷中的更改可以直接生效
3.容器的持久化
4.数据卷的生命周期一直持续到没有容器使用它为止
5.容器间继承
数据卷命令操作
容器内添加
1.直接命令添加
docker run -it -v /宿主主机绝对路径目录:容器内目录 镜像名
2.查看数据卷是否挂载成功
docker inspect 容器id
3.dockerFile添加
-
构建dockerFile文件:
FROM centos VOLUME ["/dataVolumeContainer1","/dataVolumeContainer2"] CMD echo "finished,--------success1" CMD /bin/bash
-
使用bulid生成镜像
docker bulid -f /dockerfile -t cm/centos
-
查看镜像
docker images
-
对应的宿主主机目录地址可以通过该命令查看到
docker inspect 容器id
数据卷容器
说明
命名的容器挂载数据卷,其它容器通过挂载这个(父容器)实现数据共享,挂载数据卷的容器,称之为数据卷容器
特点
容器之间配置信息的传递,数据卷的生命周期一直持续到没有容器使用他为止
命令–volumes-from
示例:docker run -it --name doc02 --volumes-from doc01 cm/centos
说明:
doc02是容器名称
doc01是容器名称
doc02的容器卷继承doc01的容器卷
dockerfile
dockerfile是什么
dockerfile是用来构建docker镜像的构建文件,是由一系列命令和参数构成的脚本
注意:
1.每条保留字指令都必须为大写字母且后面要跟随至少一个参数
2.指令按照从上到下,顺序执行
3.#表示注释
4.每条指令都会创建一个新的镜像层,并对镜像进行提交
dockerfile保留字指令
- FROM
基础镜像,当前新镜像基于哪个基础镜像 - MAINTAINER
镜像维护者的姓名和邮箱 - RUN
构建容器时需要运行的命令 - EXPOSE
当前容器对外暴露出的端口 - WORKDIR
指定在容器创建后,终端默认登录进来的工作目录 - ENV
用来构建镜像过程中设置环境变量 - ADD
将宿主主机下的文件拷贝到镜像且ADD命令会自动处理URL和解压tar压缩包 - COPY
类似ADD,拷贝文件和目录到镜像中, - VOLUME
容器数据卷,用于数据保存和持久化工作 - CMD
指定一个容器启动时要运行的命令
DockerFile中可以有多个CMD命令,但只有最后一个生效
CMD会被docker run 之后的参数替换掉 - ENTRYPOINT
指定一个容器启动时要运行的命令
命令不会被替换掉 - ONBULID
当构建一个被继承的DockerFile时运行命令,父镜像在被子镜像继承后父镜像的onbulid被触发