Docker容器的数据卷

Docker容器的数据卷

  • 数据卷的概念及作用
  • 配置数据卷
  • 配置数据卷容器

数据卷的概念及作用

思考:

  1. Docker容器删除后,在容器中产生的数据也会随之销毁吗?
    答案是肯定的,容器删除后,其中的数据也会一并删除。那这样的话存储在容器中的数据岂不是很不安全,该如何解决这个问题呢
  2. Docker容器和外部机器可以直接交换文件吗?
    答案是不可以。那这样的话数据传输就很不方便了,该如何解决这个问题呢
  3. 容器之间想要进行数据交互,该如何做呢?

数据卷:

  • 数据卷是宿主机中的一个目录
  • 容器里面也弄个目录,将容器中的目录与宿主机中的目录通过挂载的方式绑定起来,此时宿主机中的目录就可称之为数据卷
  • 当容器目录与数据卷目录绑定后,一方产生了改动,另一方会立即同步

数据卷解决了思考中的问题:

  1. 容器删除了,其中的数据也一并删除了,但宿主机中的相同数据并不会删除,因此数据得到了保留
  2. Docker容器与外部机器的交互可以转变成宿主机与外部机器的交互,这就方便多了
  3. 一个数据卷可以被多个容器同时挂载,这就解决了容器之间的数据交互问题;同样地,一个容器也可以被挂载多个数据卷

数据卷的作用:

  • 容器数据的持久化存储
  • 外部机器与容器之间的间接通信
  • 容器之间的数据交互

配置数据卷

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

docker run ... -v 宿主机目录:容器内目录 ...

注意事项:
	1.目录必须是绝对路径
	2.如果目录不存在,会自动创建
	3.可以挂载多个数据卷
	
docker run -it --name=c1 -v /root/data:/root/data_container ubuntu:18.04 /bin/bash

配置数据卷容器

多容器进行数据交换:

  • 方式一:多个容器挂载同一个数据卷
  • 方式二:数据卷容器

创建并启动c3数据卷容器,使用-v参数来设置数据卷

docker run -it --name=c3 -v /volume ubuntu:18.04 /bin/bash

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

docker run -it --name=c1 --volumes-from c3 ubuntu:18.04 /bin/bash
docker run -it --name=c2 --volumes-from c3 ubuntu:18.04 /bin/bash

数据卷容器:创建一个容器,挂载一个目录,让其他容器继承自该容器(–volume-from)

你可能感兴趣的:(Docker,docker,容器,运维)