Docker_netwokMetabase

Docker 学习笔记(二):容器数据的基本管理

2020-02-04  本文已影响0人  小叶与小茶

在使用 Docker 过程中,往往需要能查看容器产生的数据,或者将容器产生的数据进行备份,甚至容器与容器之间也可能需要进行数据共享,理解容器数据是如何进行管理的,是非常重要的知识点。

容器数据管理主要有两种方式:

  1. 数据卷(Data Volume)
  2. 数据卷容器(Data Volume Container)

一、数据卷

从使用容器的用户层面来看,数据卷是一个特殊的目录,横跨容器和宿主机的文件系统,能够提供这样一些功能:

  1. 数据卷可以在宿主机和容器之间共享
  2. 数据卷可以在容器与容器之间共享
  3. 此处对数据卷的修改,彼处立刻也能生效
  4. 对数据卷的更新,是运行时的动作,不会对镜像产生影响
在容器内创建数据卷

下面的示例表示创建一个 Ubuntu 的容器,并创建一个数据卷挂在到容器的 “/opt/data-volumes-share” 目录中:

#在容器内创建数据,docker run指令中添加 “-v” 选项,用于创建数据卷
sudo docker run -i -t -v /opt/data-volumes-share ubuntu:latest bash
挂载一个宿主机目录作为数据卷

下面的示例表示将宿主机已有的一个目录 “/home/andy-zhang/data-volumes-share/”,挂载到容器的 “/opt/data-volumes-share” 目录作为数据卷

#挂载一个宿主机目录作为数据卷
sudo docker run -i -t -v /home/andy-zhang/data-volumes-share:/opt/data-volumes-share ubuntu:latest bash

数据卷横跨在容器和宿主机文件系统,起到数据桥梁的作用,示意图如下所示:

数据卷

从这张图能够看出来,无论在宿主机还是容器1或容器2中修改数据卷中的内容,在三个地方都能看到同样的结果,从而实现了数据共享。这对研发测试非常方便,可以在宿主机中放置一些程序或数据,然后在容器内运行和使用

二、数据卷容器

数据卷容器其实也是一个普通的容器,在其中创建数据卷,并用于为其他业务容器提供数据共享能力,可以把它想象成一个中央数据库。

首先,创建一个名为 “data-volume-container” 的数据卷容器,在其中创建一个数据卷,并挂载到 “/opt/data-volume” 目录中。

sudo docker run -i -t --name data-volume-container -v /opt/data-volume ubuntu:latest bash

查看数据卷容器的 “/opt” 目录

root@e889922a6fa6:/# ls /opt
data-volume

然后,创建两个工作容器,使用 --volumes-from 选项来挂载 “data-volume-container” 容器中的数据卷

sudo docker run -i -t --name work-container-1 --volumes-from data-volume-container ubuntu:latest bash
sudo docker run -i -t --name work-container-2 --volumes-from data-volume-container ubuntu:latest bash

查看两个工作容器的 “opt” 目录

root@b3c27e59d67b:/# ls /opt/
data-volume

root@c17f14a29f39:/# ls /opt/
data-volume

现在,“work-container-1” 和 “work-container-2” 两个工作容器都已经挂载了 “data-volume-container” 容器创建的数据卷到自己的 “/opt/data-volume” 目录中了,这三个容器任意一个在该目录下写入,其他容器都可以立刻看到,实现了数据在容器间的共享。三者的数据关系如下图所示:

数据卷容器

注意,使用 --volumes-from 选项所挂载数据卷的容器,本身并不一定要保持在运行状态

三、利用数据卷和数据卷容器迁移和备份数据

理解了数据卷和数据卷容器的概念和基本操作方式,也就能理解下面这张容器数据架构图了。在实际的应用中,数据可能在容器中产生和使用,但往往需要在容器之间或宿主机之间进行数据的迁移、存储、备份、恢复等。建立良好的数据管理体系,对容器数据的安全使用和高可用性保证非常重要。

利用数据卷和数据卷容器迁移和备份数据
上一篇 下一篇

猜你喜欢

热点阅读