广告
返回顶部
首页 > 资讯 > 精选 >Docker中数据卷管理的方式有哪几种
  • 694
分享到

Docker中数据卷管理的方式有哪几种

2023-06-20 18:06:28 694人浏览 安东尼
摘要

本篇内容介绍了“Docker中数据卷管理的方式有哪几种”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是数据卷数据卷( volume ):

本篇内容介绍了“Docker中数据卷管理的方式有哪几种”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

什么是数据卷

数据卷( volume ):volume是存在于一个或多个容器中的特定文件或文件夹,这个目录以独立于联合文件系统的形式在宿主机中存在,并为数据的共享与持久化提供便利。

为什么要用数据卷

 Docker分层文件系统存在的问题:
Docker的镜像是由一系列的只读层组合而来的,当启动一个容器时, Docker加载镜像的所有只读层,并在最上层加入一个读写层。这个设计使得Docker可以提高镜像构建、存储和分发的效率,节省了时间和存储空间,然而也存在如下问题:
1、性能差。
2、多个容器之间的数据无法共享。
3、生命周期与容器相同。当删除容器时,容器产生的数据将丢失。数据卷机制的好处:
1、mount到主机中,绕开分层文件系统。
2、volume能在不同的容器之间共享和重用。
3、和主机磁盘性能相同。
4、对volume中数据的操作不会影响到镜像本身。
5、volume的生存周期独立于容器的生存周期,即使删除容器,volume仍然会存在,没有任何容器使用的volume也不会被Docker删除。
Docker提供了volumedriver接口,通过实现该接口,我们可以为Docker容器提供不同的volume存储支持。当前官方默认实现了local这种volumedriver,它使用宿主机的文件系统为Docker容器提供volume。

数据卷管理的两种方式

Docker的volume的本质是容器中一个特殊的目录。在容器的创建过程中,Docker会将宿主机上的指定目录(一个以volume ID为名称的目录,或者指定的宿主机目录)挂载到容器中指定的目录上(使用bing mount挂载方法),故挂载完成后的宿主机目录和容器内的目标目录表现一致。

1、绑定挂载bind mount

bind mount是将主机上的目录或文件mount到容器里。使用直观高效,易于理解。
使用-v选项指定挂载路径,格式 <host path>:<container path>
#前面是宿主机真实存在的路径:后面是容器内的路径

后台运行一个使用Nginx镜像的容器并将宿主机的/data目录挂载到容器的目录/usr/share/nginx/html下[root@server1 ~]# docker run -d --name demo -v /data:/usr/share/nginx/html nginx

Docker中数据卷管理的方式有哪几种

调到前台运行,分别查看宿主机和容器的指定的目录下的内容,是一样的。这是因为这种方式挂载和我们平时使用mount方式是一样的,原有数据隐藏,替换为宿主机的数据。
##/data目录下这么多东西是因为docker默认数据目录是/data

[root@server1 ~]# docker exec -it demo bash

Docker中数据卷管理的方式有哪几种

bind mount默认权限是读写rw,可以在挂载时指定只读ro。

-v选项指定的路径,如果不存在,挂载时会自动创建。docker run -it --name vm1 \ /etc/yum.repos.d/dvd.repo:/etc/yum.repos.d/dvd.repo:ro rhel7 bash

2、docker managed volume

bind mount必须指定host文件系统路径,限制了移植性。
docker managed volume不需要指定mount源,docker自动为容器创建数据卷目录。默认创建的数据卷目录都在 /var/lib/docker/volumes 中。
如果挂载时指向容器内已有的目录,容器内原有数据会被复制到volume中。
创建卷方式:

[root@server1 ~]# docker volume create WEBdata#创建一个名为webdata的卷[root@server1 ~]# docker rm -f demo#把上面创建的卷删掉[root@server1 ~]# docker run -d --name demo -v webdata:/usr/share/nginx/html nginx#把webdata这个卷挂载到容器内的/usr/share/nginx/html目录上并运行一个容器

将创建的webdata卷挂载到容器的/usr…目录下
Docker中数据卷管理的方式有哪几种
进入docker默认创建的数据卷目录查看卷里的内容,我们可以看到上面只创建了卷,没有写入任何东西,但卷里有内容是因为挂载时容器内指定目录里原本有东西,所以复制过来的
Docker中数据卷管理的方式有哪几种
我们运行容器使用的是nginx镜像,访问一下,没有问题
Docker中数据卷管理的方式有哪几种
如果挂载时没指定mount源,那么docker会自动随机创建一个文件名很长的卷

[root@server1 ~]# docker rm -f demo[root@server1 ~]# docker run -d --name demo -v /usr/share/nginx/html nginx67ab13a7b24c19c53f4ce117136b9d0e4dec93c615a0192ead919d10e6c2acae

Docker中数据卷管理的方式有哪几种
我们使用docker inspect demo命令查看下卷的源目录
Docker中数据卷管理的方式有哪几种
得到路径后就可以查看目录下的内容了

ls /var/lib/docker/volumes/2ca22fd769e4b7b6f5a02dd96fe8d47a6df5578074c0d340ced3ab33b25456ca/_data

Docker中数据卷管理的方式有哪几种

bind mount 与 docker managed volume 对比

相同点:两者都是 host 文件系统中的某个路径。
不同点如图:
Docker中数据卷管理的方式有哪几种

“Docker中数据卷管理的方式有哪几种”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: Docker中数据卷管理的方式有哪几种

本文链接: https://www.lsjlt.com/news/299063.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Docker中数据卷管理的方式有哪几种
    本篇内容介绍了“Docker中数据卷管理的方式有哪几种”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是数据卷数据卷( volume ):...
    99+
    2023-06-20
  • Docker中数据卷(volume)管理的两种方式
    上篇文章给大家介绍过 docker基础知识之挂载本地目录的方法 ,今天给大家介绍Docker中数据卷(volume)管理的两种方式,具体内容如下所示: 什么是数据卷 数据卷...
    99+
    2022-11-12
  • Docker 存储管理的几种方式
    目录前言一、存储二、卷列表三、绑定挂载四、数据卷容器五、数据备份六、数据恢复总结前言 在本文内容中,我们将讨论 Docker 中管理数据的几种方式,涉及将数据从 Docker 主机挂...
    99+
    2022-11-13
  • java事务管理的方式有哪几种
    Java事务管理的方式有以下几种:1. 编程式事务管理:开发人员通过编写代码来手动管理事务的开始、提交和回滚等操作。这种方式需要开发...
    99+
    2023-09-13
    java
  • android数据存储方式有哪几种
    Android数据存储方式有以下几种:1. Shared Preferences(共享偏好设置):用于存储简单的键值对,适用于存储少...
    99+
    2023-09-27
    android
  • Android 数据存储方式有哪几种
    以下内容给大家介绍Android数据存储提供了五种方式: 1、SharedPreferences 2、文件存储 3、SQLite数据库 4、ContentProvider 5、...
    99+
    2022-06-06
    数据 存储 数据存储 Android
  • php提交数据有哪几种方式
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑php提交数据有两种方式:get方式和post方式。1、通过get方式提交数据比如:https://www.php.cn参数名=参数值&参数名=参数值在服务器端...
    99+
    2017-02-09
    php 提交数据
  • 数据库连接池的方式有哪几种
    这篇文章主要讲解了“数据库连接池的方式有哪几种”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“数据库连接池的方式有哪几种”吧! 一、介绍数据库连接是...
    99+
    2022-10-18
  • oracle数据库连接方式有哪几种
    Oracle数据库连接方式有以下几种:1. 使用SQL*Plus连接:SQL*Plus是Oracle数据库自带的一个命令行工具,可以...
    99+
    2023-10-12
    oracle数据库
  • redis持久化数据有哪几种方式?
    redis持久化数据有哪几种方式?相信很多人对redis持久化数据的了解处于一知半解状态,小编给大家总结了以下内容。如下资料是关于redis持久化数据的内容。Redis被称为是内存数据库,那是因为它会将其所...
    99+
    2022-10-18
  • Docker存储管理的方式有哪些
    这篇“Docker存储管理的方式有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Docker存储管理的方式有哪些”文章吧...
    99+
    2023-07-02
  • 数据库常用的几种入侵的方式有哪些
    今天就跟大家聊聊有关数据库常用的几种入侵的方式有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。随着互联网的高速发展,越来越多的企业搭乘着互联网这班高速列车使得自己的企业发展的越来...
    99+
    2023-06-07
  • mysql数据库删除表数据的方式有几种
    这篇文章将为大家详细讲解有关mysql数据库删除表数据的方式,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在MySQL中删除数据有两种方式:1、truncate(截短)属...
    99+
    2022-10-18
  • c++数组初始化的方式有哪几种
    C++数组可以使用以下几种方式进行初始化:1. 使用花括号{}初始化:cppint arr1[] = {1, 2, 3, 4, 5}...
    99+
    2023-10-18
    c++
  • Java中的数据类型有哪几种
    这篇文章主要讲解了“Java中的数据类型有哪几种”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java中的数据类型有哪几种”吧!Java 中的数据类型可分为 2 种:1)基本数据类型。基本数...
    99+
    2023-06-16
  • 受欢迎的数据库管理软件有哪几种?有什么特点?
    常见的数据库软件介绍:一、MySQLMySQL是最受欢迎的开源SQL数据库管理系统,它由 MySQL AB开发、发布和支持。MySQL是一个快速的、多线程、多用户、健壮的SQL数据库服务器。MySQL服务器...
    99+
    2022-10-18
  • 云服务器清理缓存数据的方法有哪几种
    使用云存储服务清理缓存数据。 在云存储服务中,有许多云存储服务可以清理缓存数据,包括 Google Drive、Dropbox 和 OneDrive。这些服务都提供了自动清理缓存数据的功能,可以让你轻松地清除缓存中的数据。你可以通过 ...
    99+
    2023-10-28
    几种 缓存 服务器
  • PHP获取表单数据的方法有哪几种
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑1、使用预定义变量$_GET,可获取GET方法提交的数据(form表单需要设置为method="get")在程序的开发过程中,由于 GET 方法提交...
    99+
    2017-02-24
    PHP 获取表单数据
  • c语言数组初始化的方式有哪几种
    在C语言中,数组的初始化方式有以下几种:1. 声明时指定元素的初始值:```cint arr[] = {1, 2, 3, 4, 5}...
    99+
    2023-09-20
    c语言
  • php中的标量数据类型有哪几种
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑PHP 的数据类型可以分为三大类,分别是标量数据类型、复合数据类型和特殊数据类型。其中,标量数据类型是数据结构的最基础单元,只能存储一个数据。在 PHP 中的标量数据类...
    99+
    2015-08-09
    php 标量数据类型
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作