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驱动程序

Data Volumes数据卷

在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

V选项

现在,如果在启动容器后转到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 
Docker反对命令

如果浏览文本文件并转到显示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

结果

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

列出所有卷输出

觉得文章有用?

点个广告表达一下你的爱意吧 !😁