Docker笔记 容器的数据卷

时间:2024-12-14 07:09:01

大家好 我是积极向上的湘锅锅????????????

1. 数据卷概念

思考:

  • Docker容器删除后,在容器中产生的数据还在吗?
    在这里插入图片描述

答案是不在了,数据存放在容器中,如果将容器删除,数据也会被一并删除

  • Docker容器和外部机器可以直接交换文件吗?
    在这里插入图片描述

答案是不行,因为外部机器与docker内部之间是不互通的,但是外部机器和宿主机是互通的

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

可以通过数据卷的方式进行交互

数据卷

  • 数据卷是宿主机的一个目录或文件
  • 当容器目录和数据卷目录绑定之后,对方的修改会立即同步,跟linux的挂载很相似,就像mount了一个u盘
  • 一个数据卷可以被多个容器同时挂载
  • 一个容器也可以挂载多个数据卷
    在这里插入图片描述

数据卷作用:

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

2. 配置数据卷

  • 创建启动容器时,使用-v 参数 设置数据卷
docker run ... -v 宿主机目录(文件):容器内目录(文件)...
  • 1

注意事项:

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

3.数据卷容器

多容器进行数据交换主要是俩种方式:

  • 多个容器挂载同一个数据卷
  • 数据卷容器,将一个容器作为载体,进行间接挂载
    在这里插入图片描述
    配置数据卷容器
  1. 创建启动c3数据卷容器,使用-v参数 设置数据卷
docker run -it --name=c3 -v /volume centos:7 /bin/bash
  • 1
  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
  • 1
  • 2

4.数据卷小结

  1. 数据卷概念
    – 宿主机的一个目录或文件

  2. 数据卷作用
    – 容器数据持久化
    – 客户端和容器数据交换
    – 容器间数据交换

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