Docker - 存储

存储驱动程序

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

技术存储驱动程序
OverlayFSoverlay或overlay2
AUFSaufs
Btrfsbrtfs
Device Managerdevicemanager
VFSvfs
ZFSzfs

现在让我们讨论一下你将使用各种存储驱动程序的一些实例 :

AUFS

  • 这是一个稳定的驱动程序;可以用于生产就绪的应用程序.

  • 它具有良好的内存使用率,有利于确保容器的Docker体验顺畅.

  • 应该考虑与此驱动程序相关的高写入活动.

  • 这对系统有好处这是平台作为服务类型的工作.

Devicemapper

  • 这是一个稳定的驱动程序;确保平滑的Docker体验.

  • 此驱动程序适合在实验室中测试应用程序.

  • 此驱动程序符合主要Linux内核功能.

Btrfs

  • 此驱动程序符合主要Linux内核功能.

  • 有一个高 - 编写与此驱动程序关联的活动,应该考虑这一点.

  • 此驱动程序适用于维护多个构建池的实例.

Ovelay

  • 这是一个稳定的驱动程序,它是符合主要Linux内核功能.

  • 内存使用率很高.

  • 这个驱动程序适合在实验室中测试应用程序.

ZFS

  • 这是一个稳定的驱动程序,它适合在实验室中测试应用程序.

  • 这对于平台即服务类型工作的系统很有用.

要查看正在使用的存储驱动程序,请发布 docker info 命令.

语法

 
 docker info

选项

返回值

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

示例

 
 sudo docker info

输出

以下输出显示使用的主要驱动程序是 aufs 驱动程序,根目录存储在/var/lib/docker/aufs .

AUFS驱动程序

数据卷

在Docker中,您有一个可以跨容器共享的单独卷.这些被称为数据量.数据量的一些功能是 :

  • 它们在创建容器时被初始化.

  • 它们可以在许多容器中共享和重用.

  • 可以直接对卷本身进行任何更改.

  • 它们甚至存在删除容器后.

让我们看看我们的Jenkins容器.我们来做 docker inspect 来查看此图片的详细信息.我们可以发出以下命令将 docker inspect 命令的输出写入文本文件,然后相应地查看该文件.

 
 sudo docker inspect Jenkins> tmp.txt

使用 more命令查看文本文件时,您会看到 JENKINS_HOME =/var/Jenkins_home .

这是通过Jenkins图像在容器内完成的映射.

Data Volumes

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

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

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

V Option

现在,如果您在启动容器后转到Docker主机上的/home/demo 位置,您将看到所有容器文件存在.

容器文件

更改容器的存储驱动程序

如果要更改为用于容器的存储驱动程序,则可以在启动容器时执行此操作.使用 docker run 命令时,可以使用 -volume-driver 参数完成此操作.下面给出一个例子 :

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

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

Volume Driver

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

 
 sudo docker ps

然后针对容器发出 docker inspect 并使用该命令将输出放在文本文件中.

 
 sudo docker inspect 9bffb1bfebee> temp.txt


Docker Against Command

如果您浏览文本文件并转到显示 VolumeDriver 的行,您将看到驱动程序名称已更改.

驱动程序名称已更改

创建卷

可以使用 docker 命令预先创建卷.让我们进一步了解这个命令.

语法

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

期权

  • 姓名 : 这是需要创建的卷的名称.

  • opt : 这些是您在创建卷时可以提供的选项.

返回值

命令将输出创建的卷的名称.

示例

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

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

输出

上面命令的输出显示在下面 :

创建卷

列出所有卷

您还可以列出所有 docker卷 docker host 上.关于此命令的更多详细信息在下面和下面给出;

语法

 
 docker volume ls

选项

返回值

该命令将输出泊坞主机上的所有卷.

示例

 
 sudo docker volume ls

输出

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

列出所有卷输出