Docker Bind Mount 与 Volume

为了防止docker里序列化数据的丢失,docker采用了挂载的方式 volume

docker -v volumeName:containerPath
或者
docker -v containerPath

这种方式,linux中,docker会在/var/lib/docker/volumes下生成volumeName目录,将containerPath的目录挂载在/var/lib/docker/volumes/$volumeName/_data里

如果不指定volumeName,将随机生成一个文件

这种方式便是 volume

同时,为了能够自定义文件存在位置,还可以通过 docker -v 绝对路径 或者 ~/path:containerPath的方式,指定位置

这种方式,被称为 bind mount

通过docker volume inspect volumeName 查看volume的模式的挂载信息

也可以通过  docker inspect  $name| grep Mounts -A 10 查看信息,俩种方式都支持

还有需要注意的是:

bind mount

  容器以宿主机文件夹为准

volume

  宿主有数据时,以宿主机为准

  宿主无数据,从容器复制过来,再以宿主机为准

原文地址:https://www.cnblogs.com/jaxlove-it/p/12097206.html

时间: 2024-08-01 01:38:01

Docker Bind Mount 与 Volume的相关文章

docker+ bind mount 部署复杂flask应用

报错如下: [[email protected] flask-skeleton]# docker run -d -p 80:5000 -v $(pwd):/skeleton --name flask zhaiwenqiang/flask-skeleton 9b705abd5e280723b8d271394769163224e3fcc052e7313637f42c5fec703e19 /usr/bin/docker-current: Error response from daemon: oci

Data Volume 之 bind mount - 每天5分钟玩转 Docker 容器技术(39)

storage driver 和 data volume 是容器存放数据的两种方式,上一节我们学习了 storage driver,本节开始讨论 Data Volume. Data Volume 本质上是 Docker Host 文件系统中的目录或文件,能够直接被 mount 到容器的文件系统中.Data Volume 有以下特点: Data Volume 是目录或文件,而非没有格式化的磁盘(块设备). 容器可以读写 volume 中的数据. volume 数据可以被永久的保存,即使使用它的容器

Docker的数据管理(volume/bind mount/tmpfs)

Docker提供了三种不同的方式用于将宿主的数据挂载到容器中:volumes,bind mounts,tmpfs volumes.当你不知道该选择哪种方式时,记住,volumes总是正确的选择. volumes是Docker数据持久化机制.bind mounts依赖主机目录结构,volumes完全由Docker管理.Volumes有以下优点: Volumes更容易备份和移植. 可以通过Docker CLI或API进行管理 Volumes可以无区别的工作中Windows和Linux下. 多个容器共

039、Data Volume 之 bind mount (2019-02-28 周四)

参考https://www.cnblogs.com/CloudMan6/p/7142150.html Date Volume 本质上是Dokcer host文件系统中的目录或者文件,能够直接被mount到容器的文件系统中. Data Volume 有如下特点: 1.Data Volume 是目录或者文件,而非没有格式化的磁盘(块设备) 2.容器可以读写volume中的数据 3.volume数据可以被永久的保存,即使使用他的容器已经销毁 现在有三种方式来存储数据:镜像层.容器层.volume .考

【VMCloud云平台】拥抱Docker(五)Volume(1)

在上一篇中,我们讲到了如何配置多个容器并且定制属于自己的镜像,但是容器的数据性能以及持久如何保证的?本篇将通过介绍Docker Volume来说明这个问题,涉及到的架构如下图所示: 1. 说到Volume实际上有多种方式可以实现,第一种方式为采用Dockerfile,但这种方式要找到对应的volume存放在主机哪里比较麻烦.首先我们查找我们存在哪些images: 2. 然后我们写一个dockerfile,并在其中指定Volume: 3. 接着我们使用docker file构建镜像(关于Docke

【VMCloud云平台】拥抱Docker(五)Volume(2)

在上一篇中,我们讲到了Docker Volume的第一种方式,会自动帮你在Host上映射一个Lun作为容器存储,这一次,我们将采用更加暴力.直观的方式去实现Volume,涉及到的架构如下图所示: 1. 先补充下上一篇中所没有讲到的,就是用作Volume的Container是可以同时挂载给其他Container的,比如下面这个例子: 2. 接着我们进到vmctest02上看也是挂载了/vmctest: 3. Ok,测试完成,现在我们来看看第二种方式,我们先建立一个物理路径: 4. 第二种方式就是利

Docker之数据卷Volume(七)

一.简介 Docker数据卷(volume)机制.volume是存在于一个或多个容器中的特定文件或文件夹,这个目录以独立于联合文件系统的形式在宿主机中存在,并为数据的共享与持久化提供便利. 1)volume在容器创建时就会初始化,在容器运行时就可以使用其中的文件 2)volume能在不同的容器之间共享和重用 3)对volume中数据的操作会马上生效 4)对volume中数据的操作不会影响到镜像本身 5)volume的生存周期独立于容器的生存周期,即使删除容器,volume仍然会存在,没有任何容器

docker查看挂载目录Volume

使用docker inspect命令查看container的volume信息,按照书本上面敲,发现一直报错: 使用命令如下: sudo docker inspect --format "{{.Volumes}}" 676b04bec7c5 错误信息为 Template parsing error: template: :1:2: executing "" at <.Volumes>: map has no entry for key "Volu

Docker 持久化存储, Data Volume

docker容器, 再启动之后 我们可以对其进行 修改删除等等.如果是一个数据库的容器, 里面的数据 不想随着这个容器的消失, 而消失.  就需要持久化数据存储. Data Volume   这是 docker hub 上面  mysql 的Dockerfile 这里的 VOLUME 意思就是, 将产生的数据 写入到当前主机的 /var/lib/mysql 里面. [[email protected] ~]$ docker images REPOSITORY TAG IMAGE ID CREAT