Docker 存储驱动详细介绍

Docker是一种轻量级容器化技术。Docker在容器运行时会创建一个可写的容器层,也叫容器存储层。Docker存储驱动是指Docker使用哪种技术来管理镜像和存储容器数据。不同的存储驱动采用不同的技术实现Docker镜像和容器的存储管理。下面我们详细介绍一下Docker存储驱动的几种类型。

Device Mapper存储驱动

Device Mapper存储驱动通过使用Linux内核提供的Device Mapper技术实现了Docker的存储管理。Device Mapper是Linux内核提供的一种大小可变的块设备(block device)映射技术,可以将一个块设备映射到另一个块设备或者容器文件系统上。

通过使用Device Mapper存储驱动可以实现存储资源的限制、容器和镜像的快照、镜像层缓存和数据稳定性等功能。但是Device Mapper存储驱动也存在一些缺点,如镜像的下载和上传速度较慢,因为它在Docker镜像层中使用了写时复制;还有就是容器的启动时间较长,因为它要挂载容器文件系统到块设备上。

接下来我们来看一下Device Mapper存储驱动的示例:

首先我们需要创建一个名为test1的容器:

docker run --name test1 -d ubuntu:18.04 sleep 1000

然后我们使用Device Mapper存储驱动来创建一个名为test2的容器,并且把test1的容器文件系统作为test2的文件系统:

docker run --name test2 --device /dev/mapper/docker-test1 --privileged -it ubuntu:18.04 /bin/bash

这里的--device /dev/mapper/docker-test1表示使用名为docker-test1的块设备,也就是之前创建的test1容器的容器文件系统。

Overlay2存储驱动

Overlay2存储驱动是Docker的默认存储驱动,它使用OverlayFS技术实现存储管理。OverlayFS是Linux内核提供的一种轻量级的联合文件系统(UnionFS)技术,它可以将多个文件系统以只读的方式叠加到一起,并且以只写方式暴露出来。

Overlay2存储驱动优点是快速的镜像下载和上传速度以及快速的容器启动时间。Overlay2存储驱动也支持容器和镜像的快照、镜像层缓存和数据稳定性等功能。

接下来我们来看一下Overlay2存储驱动的示例:

首先我们需要创建一个名为test1的容器:

docker run --name test1 -d ubuntu:18.04 sleep 1000

然后我们使用Overlay2存储驱动来创建一个名为test2的容器,并且把test1的容器文件系统作为test2的文件系统:

docker run --name test2 --volume /var/lib/docker/overlay2/<test1-container-id>/merged:/mnt --privileged -it ubuntu:18.04 /bin/bash

这里的--volume /var/lib/docker/overlay2/<test1-container-id>/merged:/mnt表示使用test1容器的容器文件系统作为test2的文件系统。

以上就是关于Docker存储驱动的介绍以及两个示例说明,希望对大家有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Docker 存储驱动详细介绍 - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • Docker轻量管理Dashboard

    欢迎关注【无量测试之道】公众号,回复【领取资源】,Python编程学习资源干货、Python+Appium框架APP的UI自动化、Python+Selenium框架Web的UI自动化、Python+Unittest框架API自动化、 资源和代码 免费送啦~文章下方有公众号二维码,可直接微信扫一扫关注即可。 前面两篇文章已经学习了如何安装Docker和在Doc…

    Docker 2023年4月13日
    00
  • Docker上传/拉取阿里云镜像

    一、创建镜像仓库 1.登录阿里云 URL:https://cr.console.aliyun.com/cn-hangzhou/mirrors   2.创建镜像仓库 按提示要求填写内容创建镜像仓库   镜像仓库创建完成后,会在列表中显示,如下图: 2.查看仓库信息 点击管理查看仓库基本信息   二、上传本地镜像到阿里云镜像仓库 docker login –u…

    Docker 2023年4月12日
    00
  • Docker MySQL的安装与远程连接

    1.使用以下命令从docker Hub去下载MySQL官方提供的docker镜像。默认tag是latest。 docker pull mysql 如果要使用其它tag,则示例如下. “8.0”是tag。什么是tag?tag就是版本号。 docker pull mysql:8.0   2.使用以下命令启动容器. docker run –name=’sky-m…

    Docker 2023年4月13日
    00
  • Docker删除空镜像

    删除none的镜像,要先删除镜像中的容器。要删除镜像中的容器,必须先停止容器。 $ docker images $ docker rmi $(docker images | grep “none” | awk ‘{print $3}’) 直接删除带none的镜像,直接报错了。提示先停止容器。 $ docker stop $(docker ps -a | gr…

    Docker 2023年4月16日
    00
  • Rancher 系列文章-Rancher 对接 Active Directory 实战

    概述 只要是个公司,基本上都有邮箱和 AD(Active Directory). 在 AD 里,已经有了: 用户 账号密码 邮箱 用户组 组织架构 所以对于一些仅限于本公司一定范围内人员使用的管理或后台或运营运维类系统,其实是非常适合对接 AD 来进行认证、分组,以及根据分组来进行权限分配的。 对于 Rancher,假设使用者只会有这么几类: 管理员:运维部…

    2023年4月10日
    00
  • docker下修改mysql配置文件

    1 docker ps    第二步: 进入要修改的镜像   1 docker exec -it 容器ID /bin/bash    第三步: 进入要修改的文件目录 1 cd /etc/mysql    第四步: 安装vim 如果不安装vim在使用vim的时候会报找不到,在修改docker中mysql的配置文件,无法使用vi命令。 1 apt-get upd…

    Docker 2023年4月12日
    00
  • 腾讯云CentOS 7.6 64位安装docker

    本文使用的Docker是社区版,版本是19.03.2,这个版本是本文写时的最新版。 昨天新购了腾讯云的Linux服务器,所以记录下第一次安装Docker。直接用WebShell登录linux在浏览器执行命令即可。   1. 安装deltarpm  yum provides ‘*/applydeltarpm’  yum install deltarpm 2. …

    Docker 2023年4月13日
    00
  • 如何使用 ArrayPool

    如果不停的 new 数组,可能会造成 GC 的压力,因此在 aspnetcore 中推荐使用 ArrayPool 来重用数组,本文将介绍如何使用 ArrayPool。 如果不停的 new 数组,可能会造成 GC 的压力,因此在 aspnetcore 中推荐使用 ArrayPool 来重用数组,本文将介绍如何使用 ArrayPool。 使用 ArrayPool…

    2023年4月9日
    00
合作推广
合作推广
分享本页
返回顶部