个性化阅读
专注于IT技术分析

docker存储技术原理和操作介绍——docker开发教程

上一章docker开发教程请查看:docker容器链接使用和操作步骤

这一章我们开始讨论docker存储技术相关的原理和操作。

一、存储驱动程序

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

技术 存储驱动程序
OverlayFS overlay或overlay2
AUFS AUFS
BTRFS brtfs
设备管理器 设备管理器
VFS VFS
ZFS ZFS

现在让我们讨论一些你会使用不同的存储驱动程序的实例 –

AUFS

  • 这是一个稳定的驱动程序,可用于生产的应用程序。
  • 它具有良好的内存使用量,是确保顺序使用docker容器而体验良好。
  • 没有与此驱动程序应考虑相关的高写入活动。
  • 这是很好的为它们的平台作为一种服务型的工作体系。

Devicemapper

  • 这是一个稳定的驱动程序,确保docker平稳的体验。
  • 此驱动程序有利于在实验室中测试应用程序。
  • 此驱动程序是与主要的Linux内核功能在同一线上。

BTRFS

  • 此驱动程序是与主要的Linux内核功能线。
  • 没有与此驱动程序应考虑相关的高写入活动。
  • 此驱动程序是使得维护多个构建池情况良好。

Ovelay

  • 这是一个稳定的驱动程序,它是与主Linux内核的功能线。
  • 它具有良好的内存使用情况。
  • 此驱动程序有利于在实验室中测试应用程序。

ZFS

  • 这是一个稳定的驱动程序,它有利于在实验室中测试应用程序。
  • 这对于系统是很好的,其平台作为一种服务型的工作体系。

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

Docker info命令语法

docker info

返回值:该命令将提供安装在docker主机的docker组件的所有相关信息。

Docker info使用例子

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镜像的容器内进行所述映射。

数据卷

现在假设希望将容器中的卷映射到本地卷,那么在启动容器时需要指定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命令时使用卷驱动程序参数来实现。下面给出了一个示例:

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

卷驱动程序选项用于为容器指定另一个存储驱动程序。

volume_driver

要确认驱动程序已经更改,首先让我们使用docker ps命令查看正在运行的容器并获取容器ID:

sudo docker ps

然后使用docker inspect检查容器,并使用该命令将输出放到文本文件中。

docker inspect command

如果浏览文本文件并转到写有VolumeDriver的行,你将看到驱动程序名称已经更改。

四、创建卷

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

语法如下:

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

选项

  • 名称– 这是一个需要创建的卷的名称。
  • 选择– 这些选项可以在创建卷时提供。

返回值:该命令将输出卷的名称创建。

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

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

五、列出所有卷

还可以列出docker主机上的所有docker卷。关于这个命令的更多细节如下所示:

docker volume ls 

该命令将输出所有的docker主机上的卷,使用例子如下:

sudo docker volume ls 

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

列出所有卷
赞(0) 打赏
未经允许不得转载:srcmini » docker存储技术原理和操作介绍——docker开发教程
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

微信扫一扫打赏