Docker – 存储
Docker – 存储
存储驱动程序
Docker 有多个存储驱动程序,允许一个与底层存储设备一起工作。下表显示了不同的存储驱动程序以及用于存储驱动程序的技术。
Technology | 存储驱动程序 |
---|---|
OverlayFS | 叠加或叠加2 |
AUFS | aufs |
Btrfs | brtfs |
Device Manager | 装置经理 |
VFS | 虚拟现实 |
ZFS | zfs |
现在让我们讨论一些您将使用各种存储驱动程序的实例 –
澳大利亚金融服务协会
-
这是一个稳定的驱动程序;可用于生产就绪的应用程序。
-
它具有良好的内存使用率,有利于确保容器的流畅 Docker 体验。
-
应该考虑与此驱动程序相关的高写入活动。
-
它适用于平台即服务类型工作的系统。
设备映射器
-
这是一个稳定的驱动程序;确保流畅的 Docker 体验。
-
此驱动程序适用于在实验室中测试应用程序。
-
该驱动程序符合主要的 Linux 内核功能。
Btrfs
-
该驱动程序符合主要的 Linux 内核功能。
-
应该考虑与此驱动程序相关的高写入活动。
-
此驱动程序适用于您维护多个构建池的情况。
叠加
-
这是一个稳定的驱动程序,它符合主要的 Linux 内核功能。
-
它具有良好的内存使用率。
-
此驱动程序适用于在实验室中测试应用程序。
ZFS
-
这是一个稳定的驱动程序,非常适合在实验室中测试应用程序。
-
它适用于平台即服务类型工作的系统。
要查看正在使用的存储驱动程序,请发出docker info命令。
句法
docker info
选项
没有任何
返回值
该命令将提供有关安装在 Docker 主机上的 Docker 组件的所有相关信息。
例子
sudo docker info
输出
以下输出显示使用的主要驱动程序是aufs驱动程序,并且根目录存储在/var/lib/docker/aufs 中。
数据量
在 Docker 中,您有一个可以跨容器共享的单独卷。这些被称为数据量。数据量的一些特征是 –
- 它们在创建容器时被初始化。
- 它们可以在许多容器之间共享和重用。
- 可以直接对卷本身进行任何更改。
- 即使在容器被删除后它们仍然存在。
让我们看看我们的 Jenkins 容器。让我们做一个docker inspect来查看这个图像的细节。我们可以发出以下命令将docker inspect命令的输出写入文本文件,然后相应地查看该文件。
sudo docker inspect Jenkins > tmp.txt
当您使用more 命令查看文本文件时,您将看到一个条目为JENKINS_HOME=/var/Jenkins_home。
这是通过 Jenkins 映像在容器内完成的映射。
现在假设您想将容器中的卷映射到本地卷,那么您需要在启动容器时指定 –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。
现在,如果您在启动容器后转到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驱动器选项用于指定容器中其他存储驱动器。
要确认驱动已经更改,首先我们使用docker ps命令查看正在运行的容器并获取容器 ID。因此,首先发出以下命令 –
sudo docker ps
然后对容器发出docker inspect并使用命令将输出放入文本文件中。
sudo docker inspect 9bffb1bfebee > temp.txt
如果您浏览文本文件并转到显示VolumeDriver的行,您将看到驱动程序名称已更改。
创建卷
可以使用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 volume ls
选项
没有任何
返回值
该命令将输出docker 主机上的所有卷。
例子
sudo docker volume ls
输出
上述命令的输出如下所示 –