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部署flask

    1、下载一个Ubuntu镜像 2、启动镜像,使用apt-get安装python、安装pip,建议也装个vim吧 3、通过以上的容器生成一个新的镜像,命令如下docker commit afcaf46e8305 os-flask 4、写个基于falsk的hello.py,切记host一定要指定为0.0.0.0,不然端口后外面也无法访问 from flask i…

    Docker 2023年4月13日
    00
  • Grafana 系列文章(十五):Exemplars

    Exemplars 简介 Exemplar 是用一个特定的 trace,代表在给定时间间隔内的度量。Metrics 擅长给你一个系统的综合视图,而 traces 给你一个单一请求的细粒度视图;Exemplar 是连接这两者的一种方式。 假设你的公司网站正经历着流量的激增。虽然超过百分之八十的用户能够在两秒内访问网站,但有些用户的响应时间超过了正常水平,导致用…

    2023年4月10日
    00
  • 从windows CMD 命令行(CMD promp)运行Docker

    英文原帖 Running Docker from Windows CMD prompt https://medium.com/@neil.avery_68603/running-docker-from-windows-cmd-prompt-6540daebedad #### 打开CMD窗口,尝试运行docker命令,检查docker环境是否可用 `docke…

    Docker 2023年4月12日
    00
  • [笔记]使用Docker部署.NET Core应用程序

      大概快有一年的时间没有碰过docker了,理由很简单,基本上都是在IIS上部署,看到很多大佬都开始Devops持续化集成了,还有就是用Linux守护进程很恶心,哈哈,但相对来说成本会更高,但对于大型团队来说还是不错的,这不?不想被大伙甩下,哈哈,赶紧捞回来点丢下的知识,这篇文章就算是对我自己的笔记吧…Docker 中 有EE 和 CE 两个版本,其中…

    Docker 2023年4月13日
    00
  • Docker容器服务编排利器详解

    Docker容器服务编排利器详解 Docker是目前最流行的容器化技术之一,可以方便地进行应用程序的打包、部署和管理。当一个应用程序包含多个容器时,就需要使用Docker容器服务编排(Docker Compose、Docker Swarm等)来进行管理。本文将详细讲解Docker容器服务编排的使用方法和示例。 Docker Compose Docker Co…

    Docker 2023年5月16日
    00
  • Docker Compose命令详解

    1.Docker compose的使用非常类似于docker命令的使用,但是需要注意的是大部分的compose命令都需要到docker-compose.yml文件所在的目录下才能执行。 2.compose以守护进程模式运行加-d选项$ docker-compose up -d 3.查看有哪些服务,使用docker-compose ps命令,非常类似于 doc…

    Docker 2023年4月11日
    00
  • 使用Shell脚本批量启停Docker服务

    下面是“使用Shell脚本批量启停Docker服务”的完整攻略。 1. 准备工作 首先,我们需要准备好以下工具和环境: Docker:用来管理容器化的应用程序。 Shell:用来编写脚本。 2. 编写脚本 2.1 停止脚本 首先,我们需要编写一个用来停止容器的脚本。该脚本可以接收一个容器名称作为参数,并停止指定的容器。示例: #!/bin/bash # 停止…

    Docker 2023年5月16日
    00
  • docker进阶之路-基础篇 | 二:portainer安装与基本使用

    转载请注明作者及出处: 作者:银河架构师 原文链接:https://www.cnblogs.com/luas/p/12061755.html   ​简介   Portainer 是轻量级,跨平台,开源的管理Docker的UI。Portainer提供了Docker的详细概述,并允许通过基于Web的简单仪表板管理容器、镜像、网络和卷,且支持GNU / Linux…

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