0
点赞
收藏
分享

微信扫一扫

Docker 容器的数据卷的使用

拾杨梅记 2022-10-24 阅读 204

前言

1、数据卷概念

  数据卷简单来讲就是一个目录,它是由Docker daemon 挂载到容器中的,因此数据卷并不属于联合文件系统,也就是说数据卷里面的内容不会因为容器的删除而丢失。Docker启动后,容器内的文件和宿主机是隔离的,如果不使用docker commit 操作提交容器为镜像把数据保存下来,数据就会因为容器的删除而丢失。

  • 数据卷是宿主机中的一个目录或文件
  • 当容器目录和数据卷目录绑定后,对方的修改会立即同步
  • 一个数据卷可以被多个容器同时挂载
  • 一个容器也可以被挂载多个数据卷

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DLCdD6B6-1666522814974)(https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/47404a2c25804e66be04b3935e80b3a3~tplv-k3u1fbpfcp-watermark.image?)]

2、数据卷作用

  docker默认容器关闭后数据就没了,如果不通过docker commit生成新的进行数据就会丢失。数据卷的作用就是将docker容器运行产生的数据持久化。

  • 容器数据持久化
  • 外部机器和容器间接通信
  • 容器之间数据交换

3、配置数据卷

创建启动容器时,使用 –v 参数 设置数据卷

docker run ... –v 宿主机目录(文件):容器内目录(文件) ... 
​
#docker run -it --name=c1 -v /root/data:/root/data_container couchbase/centos7-systemd /bin/bash

容器的目录data_container

本机的目录data

1)此时在宿主机(本机)data目录下创建文件

touch test.txt

!](https://img-blog.csdnimg.cn/db5f709d77d249fea191f0bf2f0135ac.png)

2)在容器查看data_container,发现同步过来了。

![]](https://img-blog.csdnimg.cn/0d5b273b960b43a4bb554e0aa16fdc5b.png)

注意事项:

  • 目录必须是绝对路径
  • 如果目录不存在,会自动创建
  • 可以挂载多个数据卷

4、多容器进行数据交换

  • 多个容器挂载同一个数据卷
  • 数据卷容器

5、数据卷容器

在这里插入图片描述

1)创建启动c3数据卷容器,使用 –v 参数 设置数据卷

docker run –it --name=c3 –v /volume centos:7 /bin/bash  

2)创建启动 c1 c2 容器,使用 –-volumes-from 参数 设置数据卷

docker run –it --name=c1 --volumes-from c3 centos:7 /bin/bash 
​
docker run –it --name=c2 --volumes-from c3 centos:7 /bin/bash

6、数据卷小结

1)数据卷概念

  • 宿主机的一个目录或文件

2)数据卷作用

  • 容器数据持久化
  • 客户端和容器数据交换
  • 容器间数据交换

3)数据卷容器

  • 创建一个容器,挂载一个目录,让其他容器继承自该容器( --volume-from )
  • 通过简单方式实现数据卷配置

总结

举报

相关推荐

0 条评论