存储驱动程序
Docker有多个存储驱动程序,允许用户使用底层存储设备.下表显示了不同的存储驱动程序以及用于存储驱动程序的技术.
技术 | 存储驱动程序 |
---|---|
OverlayFS | overlay或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中,您有一个可以跨容器共享的单独卷.这些被称为数据量.数据量的一些功能是 :
它们在创建容器时被初始化.
它们可以在许多容器中共享和重用.
可以直接对卷本身进行任何更改.
它们甚至存在删除容器后.
让我们看看我们的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-driver 选项用于指定容器的另一个存储驱动程序.
确认驱动程序已更改,首先让我们使用 docker ps 命令查看正在运行的容器并获取容器ID.因此,首先发出以下命令 :
sudo docker ps
然后针对容器发出 docker inspect 并使用该命令将输出放在文本文件中.
sudo docker inspect 9bffb1bfebee> temp.txt
如果您浏览文本文件并转到显示 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
输出
上面命令的输出如下所示 :