Docker 基础入门+实例(4)-数据卷

数据管理

在使用docker过程中,需要能查看容器内应用产生的数据,或者需要把容器内的数据进行备份,多个容器数据进行共享,这就设计到了数据管理。
两种方式

  • 数据卷(data vloumes)
  • 数据卷容器(data volome containers)(不推荐)

    数据卷 挂在卷

    数据卷是一个可供容器使用的特殊目录,它绕过文件系统,可以提供很多有用的特性。

  • 可以再不同容器间共享和重用

  • 修改后马上生效
  • 对数据卷更新,不会影响镜像
  • 卷会一直存在,直到容器没有使用

    数据卷类似于Linux下对目录或文件进行的mount(挂载)操作

在容器创建一个数据卷

docker run时 -v标记可以在容器内创建一个数据卷。多次使用可以创建多个数据卷

挂载一个主机目录作为数据卷

docker run -d -p --name web --privilegde=true -v /yundata/webapps:/opt/webapp/mycentos

-d:后台运行
–nem : 容器名字设置为web
-v 将主机 /yundata/webapps目录挂载到容器内/opt/webapp目录上
–privileged=true允许访问宿主主机的特权

注意:本地目录路径为绝对路径,目录不存在会自动创建

Docker挂载的数据卷默认权限是读写(rw),用用户也可以,ro指定为只读。

docker run -d -P --name web --privileged=true -v /yundata/webapps:/opt/
webapp:ro mycentos

加入入了了:ro之后,容器器内挂载的数据卷的数据就无无法修改了了。

数据卷容器
如果用用户需要在容器器之间共享一一些持续更更新的数据,最简单的方方式是使用用数据卷容器器,数据卷容器器其实就是一一个普通的容器器,专⻔门用用它提供数据卷供其他容器器挂载使用用。
案例:创建一一个数据卷容器器,并将其挂载到两个容器器中,共享。

step 1:创建数据卷容器器,并创建数据卷dbdata目目录,同时,将数据卷容器器命名为dbdata

docker run -d -v /dbdata --name dbdata mycentos

step2:将数据卷容器,挂载到两个容器中,使用-volumes-from来挂载dbdata容器中的数据卷

docker run -d --volumes-from dbdata --name db1 mycentos
docker run -d --volumes-from dbdata --name db2 mycentos

此时,容器器db1和db2都挂载同一一个数据卷到相同的/dbdata目目录。三个容器器任何一一方方在该目目录下的写入入,其他容器器都可以看到。

多次使用用—volumes-from参数来从多个容器器挂载多个数据卷。还可以从其他已经挂载了了容器器卷的容器器来挂载数据卷

docker run -d --name db3 --volumes-from db1 mycentos

注意:使用用—volumes-from参数所挂载数据卷的容器器自身并不需要保持在运行状态。

删除时,必须删除最后一个挂载容器, docker rm -v来删除关联的容器

*通过数据卷和数据卷容器器对容器器内数据进行行行共享等操作,通过这些机制,即使容器器在运行行行中出
现故障,用用户也不不必担心心数据发生生丢失,只需要快速创建容器器即可。*
Dokcer基础入门+实例(1)
Dokcer基础入门+实例(2)
Dokcer基础入门+实例(3)
Dokcer基础入门+实例(4)
Dokcer基础入门+实例(5)

猜你喜欢

转载自blog.csdn.net/weixin_39381833/article/details/80738092