【微服务容器化】第三章-Docker容器的数据卷是什么

发布于:2022-11-27 ⋅ 阅读:(188) ⋅ 点赞:(0)

🍃3.1 数据卷概念及作用

思考几个问题:

  • Docker 容器删除后,在容器中产生的数据还在吗?

在这里插入图片描述

不在,所以容器中的数据想要持久化该怎么办?

  • Docker 容器和外部机器可以直接交换文件吗?

在这里插入图片描述

不可以,但是宿主机与容器是有联系的,我们可以通过直接访问宿主机,从而间接访问容器达到文件交换。

  • 容器之间想要进行数据交互?

在这里插入图片描述

可以通过挂载相同数据卷进行实现。

3.1.1 数据卷概念

​ 1)数据卷是宿主机中的一个目录或文件

​ 2)当容器目录和数据卷目录绑定后,对方的修改会立即同步

​ 3)一个数据卷可以被多个容器同时挂载

​ 4)一个容器也可以被挂载多个数据卷

3.1.2 数据卷的作用

​ 1) 容器数据持久化

​ 2) 外部机器和容器间接通信

​ 3) 容器之间数据交换

🍃3.2 配置数据卷

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

[root@centos7 ~]# docker run ... –v 宿主机目录(文件):容器内目录(文件) ... 

注意事项:

  1. 容器目录必须是绝对路径

  2. 如果目录不存在,会自动创建

  3. 可以挂载多个数据卷

在这里插入图片描述

3.2.1 演示数据卷持久化

创建容器c1并且挂载/root/data/root/data_container

[root@centos7 ~]# docker run -it --name=c1 -v /root/data:/root/data_container centos:7 /bin/bash

在/root/data_container下随便创建一个文件b.txt

在这里插入图片描述

关闭容器,可以看到数据卷数据文件还在

[root@centos7 ~]# docker stop c1

在这里插入图片描述

结果:宿主机目录还在

删除容器c1

[root@centos7 ~]# docker rm c1

在这里插入图片描述

结果:宿主机目录还在

重新恢复c1

[root@centos7 ~]# docker run -it --name=c1 -v ~/data:/root/data_container centos:7 /bin/bash

注意在容器中不能写~,第一个~代表root

在这里插入图片描述

结果:恢复后发现容器中的数据还在

3.2.2 演示一个容器挂载多个数据卷

创建一个容器c2的centos7,同时挂载两个数据卷

docker run -it --name=c2 \ 

-v ~/data2:/root/data2 \ 

-v ~/data3:/root/data3 \ 

centos:7 

\表示换行

​ 1) 在容器中的data3中创建一个文件

在这里插入图片描述

​ 2)在宿主机中查看是否同步

在这里插入图片描述

结果跟我们预想的一样,是同步显示的。

3.2.3 演示两个容器挂载同一个数据卷

docker run -it --name=c3 -v /root/data:/root/data_container centos:7 /bin/bash 
docker run -it --name=c4 -v /root/data:/root/data_container centos:7 /bin/bash

在一个容器中修改文件,看到另一个容器也跟着 ,结果同上个演示。

🍃3.3 配置数据卷容器

多容器进行数据交换,多个容器挂载同一个数据卷容器,完成数据交互

在这里插入图片描述

  1. 创建启动c3数据卷容器,使用 –v 参数 设置数据卷
docker run –it --name=c3 –v /volume centos:7 /bin/bash

这里没有指定宿主机目录,默认生成一个宿主机目录

docker inspect c3 #查看c3

在这里插入图片描述

  1. 创建启动 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

​ c1创建数据,c2同步:

在这里插入图片描述

​ 使用 c3数据卷容器创建c1,c2,这时即使c3关闭不影响c3,c4交互 。

​ 测试:关闭c3,在c2中添加文件,c1查看

在这里插入图片描述

在这里插入图片描述

数据卷小结

  1. 数据卷概念

    • 宿主机的一个目录或文件
  2. 数据卷作用

    • 容器数据持久化

    • 客户端和容器数据交换

    • 容器间数据交换

3.数据卷容器

  • 创建一个容器,挂载一个目录,让其他容器继承自该容器( --volume-from )。

  • 通过简单方式实现数据卷配置

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到