Docker 数据卷

 1、什么是数据卷

        通过镜像创建一个容器。容器一旦被销毁,则容器内的数据将一并被删除。但有些情况下,通过服务器上传的图片出会丢失。容器中的数据不是持久化状态的。这个时候可以通过数据卷来解决这个问题。

        数据卷是一个可供一个或多个容器使用的特殊目录。数据卷的特点是:1、数据卷可以在容器之间共享和重用。2、对数据卷的修改会立马生效。3、对数据卷的更新不会影响镜像。4、数据卷默认会一直存在即使容器被删除

        通俗一点而言,数据卷相当于硬盘,可以保存服务器的数据,即是服务器关闭了,数据依然不会丢失。

2、为什么需要数据卷

        这得从 docker 容器的文件系统说起。出于效率等一系列原因,docker 容器的文件系统在宿主机上存在的方式很复杂,这会带来下面几个问题:1、不能在宿主机上很方便地访问容器中的文件2、无法在多个容器之间共享数据3、当容器删除时,容器中产生的数据将丢失。

        所以引入数据卷的目的就是为了解决上诉的问题,实现多个容器共享数据,保存数据、方便宿主机访问容器中的数据。数据卷是存在于一个或多个容器中的特定文件或文件夹,这个文件或文件夹以独立于 docker 文件系统的形式存在于宿主机中。

        数据卷的最大特定是:其生存周期独立于容器的生存周期

3、使用场景

        1、在多个容器之间共享数据,多个容器可以同时以只读或者读写的方式挂载(引用/指向的意思)同一个数据卷,从而共享数据卷中的数据。

        2、当宿主机不能保证一定存在某个目录或一些固定路径的文件时,使用数据卷可以规避这种限制带来的问题。

        3、当你想把容器中的数据存储在宿主机之外的地方时,比如远程主机上或云存储上。

        4、当你需要把容器数据在不同的宿主机之间备份恢复迁移时,数据卷是很好的选择。

4、相关命令

        创建数据卷命令如下:

# 创建数据卷之后,默认会存放到目录: /var/lib/docker/volume/数据卷名称/_data目录下docker volume create 数据卷名称

        查看数据卷命令如下:

# 查看数据卷
docker volume inspect 数据卷名称# 查看全部数据卷信息
docker volume ls

        删除数据卷命令如下:

# 删除数据卷
docker volume rm 数据卷名称

5、应用数据卷:

        当你映射(意思就是这个容器的数据存储在这个数据卷里面)数据卷时,如果数据卷不存在,Docker 会帮你自动创建,即将容器内的某个文件夹挂载到宿主机的指定文件夹中。命令如下:

# 如果没有这个数据卷名称,docker会给你自动创建docker run -v 数据卷名称:宿主机的路径 镜像IDeg:docker run -v xhf:/var/lib/docker/volumes tomcat:8# 这种 volume 是在创建容器时从宿主机中挂载的,无论对容器进行任何操作都不会导致其在宿主机中被删除,如果不需要这些文件,只能手动删除。

        我们可以发现,我们上一节是将数据卷删除了的,执行完上面的方法之后,数据卷又被创建出来了,如下所示:

         接下来我们执行 eg 里面的命令,然后使用 cp 命令,向被数据卷指定的容器文件夹中放置文件,文件也会同步到数据卷中去,如下所示:

# 直接指定一个路径作为数据卷的存储位置docker run -v 路径:容器内部的路径 镜像IDeg:docker run --rm -d --name tomcat-8081 -p 8081:8080 -v /usr/local/docker/xhf_home/:/usr/local/tomcat/webapps/xhf_home tomcat:8# -v 数据卷参数# 将宿主机 /usr/local/docker/xhf_home/ 文件内的内容信息 挂载在容器 /usr/local/tomcat/webapps/xhf_home 目录下

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/28578.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GAMES101 OpenCV环境安装

文章目录 Opencv 库编译Step 1.下载源码Step 2. 使用CMake编译Step3. 解决CMake 过程中的报错错误1: 错误的Python版本:错误1 解决办法 错误2:下载ippicv_2020_win_ia32_20191018_general.zip失败错误2 解决办法 错误3:ffmpeg相关文件下载失败…

时间序列的季节性:3种模式及8种建模方法

分析和处理季节性是时间序列分析中的一个关键工作,在本文中我们将描述三种类型的季节性以及常见的8种建模方法。 什么是季节性? 季节性是构成时间序列的关键因素之一,是指在一段时间内以相似强度重复的系统运动。 季节变化可以由各种因素引起&#xf…

C++——map和set(multimap和multiset)

目录 1.关联式容器 2.键值对 3.树形结构的关联式容器 3.1 set 3.1.1 set的介绍 3.1.2 set的使用 3.2 multiset 3.2.1 multiset的介绍 3.2.2 multiset的使用 3.3 map 3.3.1 map的介绍 3.3.2 map的使用 3.4 multimap 3.4.1 multimap的介绍 3.4.2 multimap的使用 …

(五)「消息队列」之 RabbitMQ 主题(使用 .NET 客户端)

0、引言 先决条件 本教程假设 RabbitMQ 已安装并且正在 本地主机 的标准端口(5672)上运行。如果您使用了不同的主机、端口或凭证,则要求调整连接设置。 获取帮助 如果您在阅读本教程时遇到问题,可以通过邮件列表或者 RabbitMQ 社区…

简单工厂模式(java)

目录 结构 案例 类图 代码实现 简单咖啡工厂类 咖啡店类 咖啡类 具体咖啡类 简单工厂方法的优缺点 优点 缺点 结构 简单工厂包含如下角色: 抽象产品 :定义了产品的规范,描述了产品的主要特性和功能。具体产品 :实现或者…

Spring Boot Helper插件免费版的下载

在使用idea的社区版的时候,我们创建springboot项目就要下载springboot helper插件,下载是很简单,但是呢,有一个问题就是: 可以看到它是收费的,要想免费创建spring boot项目那么我们第一可以采用网页版创建&…

Java线程池

目录 线程池 一、Java构建线程的方法 二、线程池的7个参数 三、线程池的执行流程 四、线程池属性标识 4.1.核心属性 4.2.线程池状态变化 五、线程池的 execute 方法执行 六、Worker的封装 七、线程执行的后续处理 线程池 线程池ThreadPoolExecutor源码剖析 // Execu…

B071-项目实战-用户模块--手机注册 管理员登录

目录 完成注册功能后端开发完成UserControllerUserServiceImplLogininfoMapper 前端页面完成绑定数据绑定事件准备登录页 管理员登录1需求分析登录设计页面设计表设计流程设计所需技术 员工新增级联操作登录信息EmployeeServiceImplShopServiceImpl 管理员登录2前端页面后端接口…

MacOS使用USB接口与IPhone进行Socket通信

演示效果如下: 开源地址: GitHub - rsms/peertalk: iOS and Mac Cocoa library for communicating over USB 克隆源码: git clone https://github.com/rsms/peertalk.git 克隆后打开peertalk然后启动xcode工程 先启动MacOS服务端工程,再启动iOS客户端工程 客户端 服务端

php代码逻辑题

<?php error_reporting(0); show_source(__FILE__); $guess $_POST[guess]; $data (array)json_decode($_GET[data]); if(substr(md5($guess),0,27)797ed5077436dc8abaec64750e2)if ($data[aaa] !666 && intval($data[aaa],0) 666 &‮⁦!!⁩⁦& "h…

AtcoderABC249场

A - JoggingA - Jogging 题目大意 高桥和青木一起慢跑&#xff0c;高桥每隔 ACAC 秒钟走 BB 米&#xff0c;然后休息 CC 秒钟&#xff0c;青木每隔 DFDF 秒钟走 EE 米&#xff0c;然后休息 FF 秒钟。现在已经过去了 XX 秒钟&#xff0c;问谁跑得更远。 思路分析 模拟来解决这…

mysql 1 -- 数据库介绍、mysql 安装及设置

Linux 安装 mysql 1、数据库&#xff08;mysql&#xff09; 数据文件 - 数据库过了系统 2、c/s mysql 服务器 mysql 客户端 ip port : 3306 3、关系型 于 非关系型数据库&#xff08;nosql&#xff09; nosql可以解决一些关系型数据库所无法实现的场景引用。 一、数据库介绍 …