美文网首页
Docker容器数据卷

Docker容器数据卷

作者: 渣渣进化论 | 来源:发表于2018-10-28 11:09 被阅读31次

是什么

docker的理念将运行的环境打包形成容器运行,运行可以伴随容器,但是我们对数据的要求是希望持久化,容器之间可以共享数据,Docker容器产生的数据,如果不通过docker commit生成新的镜像,使得数据作为容器的一部分保存下来,那么当容器被删除之后,数据也就没了,为了能够保存数据,在docker容器中使用卷。卷就是目录或者文件,存在于一个或者多个容器中,但是不属于联合文件系统,因此能够绕过Union File System提供一些用于持久化数据或共享数据的特点

能干嘛?

卷的设计目的就是数据的持久化,完全独立与容器的生命周期,因此Docker不会在容器删除时删除其挂载的数据卷。
特点:
   1. 数据卷可以在容器之间共享和重用数据。
   2. 卷的更改可以直接生效。
   3. 数据卷的更改不会包含在镜像的更新中。
   4. 数据卷的生命周期一直持续到没有容器使用它为止。
容器的持久化
容器间继承+共享数据

数据卷
容器内添加

 1.直接命令添加:
  命令
   docker run -it -v /宿主机绝对路径目录:/容器内目录 镜像名


左边为主机,右边为容器

   查看数据卷是否挂载成功。
    使用docker imspect 容器ID,返回的json串有这么一串数据说明挂载成功。


使用命令
绑定成功
 容器和宿主机之间通信
相互读写
容器关闭后在宿主机更改文件,容器再次启动数据仍然同步
关闭容器
宿主机新增文件
容器内任然有数据

命令(带权限)
  docker run -it -v /宿主机绝对路径目录:/容器内目录:ro 镜像名  (read only)
  此时主机能对数据卷进行更改,但是容器不能对其更改,只允许读。

DockerFile

hello.java ---- hello.class
hello images ---- images DockerFile
实际就是镜像的描述。

2.DockerFile添加

  • 根目录下新建mydocker文件夹并进入。

  • 在DockerFile中使用VOLUME指令给镜像添加一个或者多个数据卷
    VOLUME["/dataVolumeContainer","dataVolumeContainer2","dataVolumeContainer3"]
      出于可移植和分享的考虑,用-v命令这种方法不能够直在DockerFile中实现,由于宿主机目录是依赖于特定宿主机的,并不能保证所有的宿主机都存在这样的特定目录。

  • File构建


    编写DockerFile文件
  • build后生成镜像-----获得新的镜像


    构建镜像

    也是一层一层的叠加,联合文件系统

  • run容器


    运行容器

    可以看到已经创建两个数据卷,对应主机路径


    主机对应的数据卷

Docker 挂载主机目录Docker出项cannot open directory .:Permission denied
解决办法:在挂载目录后面 多加一个--privileged=true参数即可
docker run -it -v /mydatavolume:/datavolumecontainer --privileged=true 镜像名

数据卷容器

命名的容器挂载数据卷,其他的容器通过挂载这个容器(父容器)实现数据共享,挂载数据卷的容器,称为数据卷容器

  • 以上一步新建的镜像为模板运行容器dc01/dc02/dc03
    他们已经具有容器卷/datavolumecontainer1和/datavolumecontainer2
  • 容器间传递共享(--volumes-from)

      启动父容器dc01--在datavolumecontainer2中新增内容 启动父容器并新建内容
      dc01/dc02继承自dc01(--volumes-from)
    dc02中有dc01新建的文件

      子容器创建文件父容器查看


    子容器新建的会影响父容器
      删除父容器子容器数据保留,
    image.png
    容器之间配置信息的传递,数据卷的生命周期一直持续到没有容器使用它为止。

相关文章

  • 【现学现忘Docker基础】— 21.Docker容器数据卷(一

    1、什么是Docker容器数据卷 Docker容器数据卷,即Docker Volume(卷)。 当Docker容器...

  • docker容器数据卷

    什么是容器数据卷 把docker容器运行产生的数据持久化,相当于容器的外置硬盘 容器数据卷的特点 1.数据卷可在容...

  • Docker 数据管理

    Volume(数据卷) 将Docker主机数据挂载到容器 创建数据卷 查看数据卷详细信息 用卷创建一个容器,让这个...

  • Docker 容器数据卷

    Docker 容器数据卷 如果不写容器外路径,则会给你定义一个路径 什么是容器数据卷(volume) 需求: 容器...

  • Docker(四) 存储卷

    docker存储卷 数据卷 为什么需要数据卷(存储卷)docker镜像由多个只读层叠加而成,启动容器时,docke...

  • Docker(2)-容器数据卷-DockerFile-Docke

    容器数据卷 1. 什么是容器数据卷 docker的理念回顾 将应用和环境打包成一个镜像! 数据?如果数据都在容器中...

  • 第六篇 : Docker 容器的数据管理

    一、容器的数据卷 1. 什么是数据卷? docker的理念之一就是将应用和运行的环境打包,因此docker容器的生...

  • Docker基础(3) 数据卷

    创建数据卷 挂载Host目录作为数据卷 挂载Host的文件作为数据卷 数据卷容器 数据卷的备份和恢复 Docker...

  • docker数据卷和数据镜像

    添加数据卷docker run的时候添加参数 -v /localpath:/dockerpath 添加数据卷容器...

  • Docker笔记之总结

    Docker笔记之Docker初体验Docker笔记之容器Docker笔记之网络管理Docker笔记之数据卷Doc...

网友评论

      本文标题:Docker容器数据卷

      本文链接:https://www.haomeiwen.com/subject/fohptqtx.html