Docker 存储

Docker 存储

存储驱动程序

Docker具有多个存储驱动程序,允许用户使用底层存储设备进行工作。以下表格显示了不同的存储驱动程序以及用于存储驱动程序的技术。

Technology Storage Driver
OverlayFS overlay or overlay2
AUFS aufs
Btrfs brtfs
Device Manager devicemanager
VFS vfs
ZFS zfs

现在让我们讨论一些使用不同存储驱动的实例-

AUFS

  • 这是一个稳定的驱动程序,适用于生产环境的应用程序。

  • 它具有良好的内存使用率,并且能够确保容器的Docker体验流畅。

  • 与该驱动程序相关的写入活动较多,需要考虑。

  • 适用于平台即服务类型的系统。

Devicemapper

  • 这是一个稳定的驱动程序,确保Docker的体验流畅。

  • 这个驱动程序适用于实验室中的应用程序测试。

  • 该驱动程序与主要的Linux内核功能一致。

Btrfs

  • 该驱动程序与主要的Linux内核功能一致。

  • 与该驱动程序相关的写入活动较多,需要考虑。

  • 该驱动程序适用于维护多个构建池的情况。

Ovelay

  • 这是一个稳定的驱动程序,并且与主要的Linux内核功能一致。

  • 它具有良好的内存使用率。

  • 该驱动程序适用于实验室中的应用程序测试。

ZFS

  • 这是一个稳定的驱动程序,并且适用于实验室中的应用程序测试。

  • 适用于平台即服务类型的系统。

要查看正在使用的存储驱动程序,请执行 docker info 命令。

语法

docker info

选项

返回值

该命令将提供有关安装在Docker主机上的Docker组件的所有相关信息。

示例

sudo docker info

输出

下面的输出显示使用的主要驱动程序是 aufs 驱动程序,并且根目录存储在 /var/lib/docker/aufs 中。

Docker 存储

数据卷

在Docker中,您可以有一个可在容器之间共享的独立卷。这些被称为 数据卷 。数据卷的一些特点如下:

  • 创建容器时会初始化数据卷。
  • 数据卷可以在多个容器之间共享和重用。
  • 可直接对数据卷进行更改。
  • 数据卷在容器删除后仍然存在。

让我们看看我们的Jenkins容器。让我们执行 docker inspect 命令以查看此镜像的详细信息。我们可以使用以下命令将 docker inspect 命令的输出写入文本文件,然后相应地查看该文件。

sudo docker inspect Jenkins > tmp.txt

当您使用 more命令 查看文本文件时,您将看到一条条目 JENKINS_HOME=/var/Jenkins_home

这是通过Jenkins镜像在容器内进行的映射。

Docker 存储

现在假设你想将容器中的音量映射到本地音量,那么在启动容器时需要指定-v选项。示例如下:

sudo docker run –d –v /home/demo:/var/jenkins_home –p 8080:8080 –p 50000:50000 jenkins

使用-v选项将容器中的卷映射到Docker主机上的位置,该卷是 /var/jenkins_home ,而我们的Docker主机位置是 /home/demo

Docker 存储

现在,如果你启动了容器之后,打开Docker主机上的 /home/demo 路径,你会看到所有的容器文件都在那里。

Docker 存储

更改容器的存储驱动程序

如果您想要更改容器使用的存储驱动程序,可以在启动容器时进行。可以通过在使用 --volume-driver 参数时使用 docker run 命令来实现。以下是一个示例:

sudo docker run –d --volume-driver=flocker 
   –v /home/demo:/var/jenkins_home –p 8080:8080 –p 50000:50000 jenkins

使用 --volume-driver 选项来指定容器的另一个存储驱动程序。

Docker 存储

确认驱动程序已更改,首先让我们使用 docker ps 命令查看正在运行的容器并获取容器ID。因此,首先发出以下命令 –

sudo docker ps

然后使用以下命令对容器执行 docker inspect 并将输出保存到文本文件中。

sudo docker inspect 9bffb1bfebee > temp.txt

Docker 存储

创建卷

可以使用 docker 命令提前创建卷。让我们更多地了解这个命令。

语法

docker volume create –-name=volumename –-opt options

选项

  • name -这是需要创建的卷的名称。

  • opt -这是创建卷时您可以提供的选项。

返回值

该命令将输出已创建卷的名称。

示例

sudo docker volume create –-name = demo –opt o = size = 100m

在上面的命令中,我们创建了一个大小为100MB、名称为demo的卷。

输出

上述命令的输出如下所示:

Docker 存储

列出所有卷

你还可以列出docker主机上所有 docker卷 的详细信息,请参见下面的命令

语法

docker volume ls

选项

返回值

该命令将输出所有在Docker主机上的卷。

示例

sudo docker volume ls

输出

上述命令的输出如下所示 –

Docker 存储

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程