Docker之数据卷的使用

 🎉🎉欢迎来到我的CSDN主页!🎉🎉

🏅我是君易--鑨,一个在CSDN分享笔记的博主。📚📚

🌟推荐给大家我的博客专栏《Docker之数据卷的使用》。🎯🎯

🎁如果感觉还不错的话请给我关注加三连吧!🎁🎁

 

一、数据卷的简介

1. Docker数据管理

        Docker 提供了多种方式来管理容器中的数据,以确保数据的持久性和可靠性。以下是一些常见的 Docker 数据管理方式:

1.1 数据卷(Volumes)

        数据卷是 Docker 中最常用的数据管理方式之一。数据卷是容器与主机之间共享的持久化存储,独立于容器的生命周期。数据卷可以用于存储应用程序数据、配置文件等。容器可以通过挂载数据卷来访问和修改其中的数据。数据卷的好处包括数据的持久性、容器之间的共享数据,以及方便数据备份和恢复

# 创建数据卷
docker volume create my_volume# 启动容器并挂载数据卷
docker run -d -v my_volume:/path/in/container my_image

1.2 绑定挂载(Bind Mounts)

        绑定挂载允许将主机文件系统上的特定路径挂载到容器内的路径。这种方式可以用于在容器中访问主机上的文件或目录,也可以用于在主机和容器之间实现数据共享。

# 启动容器并使用绑定挂载
docker run -d -v /host/path:/container/path my_image

1.3 匿名卷

        Docker 允许在容器中创建匿名卷,这些卷不会直接与主机上的文件系统关联,而是存储在 Docker 管理的卷中。这样可以确保容器的数据在主机上是相对隔离的

# 启动容器并使用匿名卷
docker run -d -v /container/path my_image

1.4 数据卷容器

        可以创建一个专门用于存储数据的容器,其他容器通过挂载这个容器的数据卷来实现数据共享。这样的容器通常被称为数据卷容器。

# 创建数据卷容器
docker create -v /data --name my_data_container my_image# 启动应用容器,并挂载数据卷容器
docker run --volumes-from my_data_container another_image

 1.5 Docker Compose

        Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。通过 Compose 文件,可以方便地定义多个服务、容器、网络和数据卷,并一起管理它们的生命周期

version: '3'
services:web:image: my_web_appvolumes:- my_volume:/app/datavolumes:my_volume:

         总之,这些数据管理方式可以根据应用程序的需求进行选择和组合。使用适当的数据管理方式有助于确保容器中的数据持久、可靠、易于备份和恢复。

2.  数据卷的简介

2.1 数据卷的关键特性

Docker数据卷的一些关键特性
关键特性说明
持久性数据卷中的数据是持久的,即使容器被删除,数据卷依然存在。这使得数据可以在容器之间共享,而不受容器生命周期的限制。
独立于容器数据卷是独立于容器的实体,它可以被多个容器挂载和共享。这种独立性使得数据卷可以被用于存储共享数据、配置信息等。
挂载点在容器内,数据卷通过指定挂载点(Mount Point)来与容器中的路径关联。容器内的应用程序可以读写这个挂载点,实现对数据卷中数据的访问。
主机和容器之间的数据传递数据卷可以用于在主机和容器之间传递数据。通过挂载主机上的路径到容器内,可以实现主机和容器之间的数据共享。

2.2 数据卷的一些基本使用方式

创建数据卷
docker volume create my_volume
启动容器并挂载数据卷
docker run -d -v my_volume:/path/in/container my_image
查看数据卷信息
docker volume inspect my_volume

3. 数据卷容器简介

3.1 数据卷容器的一些关键特性

Docker数据卷的一些关键特性
关键特性说明
持久性数据卷中的数据是持久的,即使容器被删除,数据卷依然存在。这使得数据可以在容器之间共享,而不受容器生命周期的限制。
独立于容器数据卷是独立于容器的实体,它可以被多个容器挂载和共享。这种独立性使得数据卷可以被用于存储共享数据、配置信息等。
挂载点在容器内,数据卷通过指定挂载点(Mount Point)来与容器中的路径关联。容器内的应用程序可以读写这个挂载点,实现对数据卷中数据的访问。
主机和容器之间的数据传递数据卷可以用于在主机和容器之间传递数据。通过挂载主机上的路径到容器内,可以实现主机和容器之间的数据共享。3.2 s

3.2 数据卷容器的基本使用

创建数据卷容器 
docker create -v /data --name my_data_container my_image
启动其他容器并挂载数据卷容器
docker run --volumes-from my_data_container -d another_image
查看数据卷容器信
docker inspect my_data_container

二、实用演示

1. 数据卷挂载

        我们创建一个容器并且进入到我们的容器中,在容器中创建一个文件并且编写其内容在里面

 

        然后我们按住ctrl+d退出容器,然后删除所有的容器,再重新创建一个一样的容器。 

         由上图可知我们在新建的一个容器中并没有我们之前在容器中新建的a.txt文件,因为每个容器的数据都是独立的,而且数据跟随者容器的生命周期的。

         首先我们先确保我们有tomcat镜像,没有的话我们输入指令docker pull tomcat 版本执行进行拉取。

         我们用tomcat的镜像创建一个容器

         我们本机的网页上去访问我们Docker中的服务器,如果访问不了需要我们开放端口号

指令:firewall-cmd --zone=public --add-port=8080/tcp     //开放对应端口

           firewall-cmd reload    //刷新防火墙

我们在tomcat首页可以进行项目发布,点击右侧的Manager App进行发布,但是我们的tomcat没有user.xml文件没有用户信息,因此我们需要添加其文件。  我们可以子外面编写好文件利用数据卷将其放到我们的tomcat中进行其覆盖。

         我们进入我们创建的tomcat容器中

       我们进入tomcat服务器中的webapps文件目录下,将我们的项目war通过第三方连接工具使用托拉拽的方式添加到里面。

        我们创建一个数据卷  

         挂载数据卷 :

在用 docker run 命令的时候,使用 -- mount 标记来将 数据卷 挂载到容器里。在一次 docker
run 中可以挂载多个 数据卷

 

         我们新建一个窗口进行瓜挂载同一个数据卷,进入其生成的数据卷的文件夹

         我们在c3中的testdir中新建一个文件,我们进入到c2的testdir中进行查看

         由此可知数据卷的数据是共享的,我们将所有的容器删除掉,我们切换到v1的目录下,将war包拖至该目录下。

        我们再执行命令将数据卷的内容弄到指定的目录下。 是一整个目录的替换

 

         我们再去访问虚拟机的tomcat。因为我们的文件覆盖了

 

         因为我们导入的项目包时war包,因此会自动给我们解压,我们可以直接在网页进行访问。

2. 目录挂载

        去除容器和数据卷

          我们在根目录下创建一个文件夹用于实现目录挂载

         切入到该文件中,将我们的war包放入到文件夹中

 

         接下来进行目录挂载。

 

         我们再去网页访问8080

         再去访问我们的项目

         /soft直接将webapps文件替换掉了。我们去除所有的容器,执行下述指令:

docker run -itd --name t1 -v /soft/oapro.war:/usr/local/tomcat/webapps/oapro.war -p 8080:8080 tomcat:8.5.2

 

        我们再访问项目和服务器  


 🎉🎉本期的博客分享到此结束🎉🎉

📚📚各位老铁慢慢消化📚📚

🎯🎯下期博客博主会带来新货🎯🎯

🎁三连加关注,阅读不迷路 !🎁

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

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

相关文章

SSM框架学习笔记04 | SpringMVC

文章目录 一、SpringMVC简介二、 请求与响应1. 请求映射路径2. get请求与post请求3. 响应 二、REST风格1.简介 三、 SSM整合四、拦截器1. 定义拦截器2.配置拦截器3.拦截器执行顺序4.拦截器参数5.多个连接器工作流程分析6.拦截器链的运行顺序 一、SpringMVC简介 SpringMVC技术与…

响应式Web开发项目教程(HTML5+CSS3+Bootstrap)第2版 例3-1 CSS3过渡

代码 <!doctype html> <html> <head> <meta charset"utf-8"> <title>CSS3 过渡</title> <style> /*显示*/ .box {width: 100px;height: 100px;background-color: #eee;/*透明度*/opacity: 1;/*过渡*/transition: 3s; } /…

搭建 MyBatis 环境

目录 1.添加依赖 2.数据库连接配置 3.配置XML路径 4.下载插件MyBatisX 5.如何使用 6.示例 1.添加依赖 创建新项目时添加两个依赖: MyBatis Framewrok 和 MySQL Driver 。 如果是在已经创建好的项目中配置mybatis环境。需要先下载一个插件&#xff1a;EditStarters 。 然…

【AIGC】Controlnet:基于扩散模型的文生图的可控性

前言 controlnet可以让stable diffusion的生图变得可控。 文章连接&#xff1a;https://arxiv.org/pdf/2302.05543.pdf 摘要 冻结了stable diffusion的预训练模型并重用它的预训练编码层神经网络结构与零初始化卷积层连接&#xff0c;从零开始逐渐增加参数&#xff0c;并确…

DNS域名解析服务器

前言 一、域名 1、域名的概念和作用 2、域名与ip地址的关系 3、域名的构成 二、DNS服务器 1、DNS服务器的概念和作用 2、DNS服务器的优势 3、DNS服务器的类型 4、DNS服务器的查询方式 4.1 递归查询 4.2 迭代查询 5、DNS服务器查询原理过程 6、本地系统上的域名解析…

SQL-修改数据

&#x1f389;欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克&#x1f379; ✨博客主页&#xff1a;小小恶斯法克的博客 &#x1f388;该系列文章专栏&#xff1a;重拾MySQL &#x1f379;文章作者技术和水平很有限&#xff0c;如果文中出现错误&am…

Vant2组件库van-list+Toast下拉加载滚动条回顶问题

目录 List 列表 Toast 轻提示 解决方案 1、不使用 Toast 的 加载提示 2、修改调整 pointer-event 属性值 3、判断是否为第一次加载再使用 背景 &#xff1a; 移动端项目 开发时&#xff0c;有数据长列表展示的场景需求&#xff0c;此时就用到了 Vant2 组件库里面的 <v…

JRebel热部署

热部署 什么热部署&#xff0c;简单来说我们正常的java项目需要编写java代码&#xff0c;但电脑执行的可不是java代码&#xff0c;而是转换后的class文件。这也意味着我们对程序进行微调&#xff0c;也要重新编译才能让程序展示我们需要的状态 而且不仅仅是我们手写的java文件…

7.11、Kali Linux中文版虚拟机安装运行教程

目录 一、资源下载准备工作 二、安装教程 三、kali linux换源 四、apt-get update 报错 一、资源下载准备工作 linux 中文版镜像历史版本下载:http://old.kali.org/kali-images/ 大家可以自行选择版本下载&#xff0c;本人下载的是2021版本 二、安装教程 打开vmvare wokst…

ZooKeeper 实战(二) 命令行操作篇

文章目录 ZooKeeper 实战(二) 命令行操作篇1. 服务端命令1.1. 服务启动1.2. 查看服务1.3. 重启服务1.4. 停止服务 2. 客户端命令2.1. 启动客户端2.2. 查看节点信息查看根节点详情 ls -s /添加一个watch监视器 ls -w /列举出节点的级联节点 ls -R / 2.3. 查看节点状态2.4. 创建节…

小学信息科技Python课程第2课:坐标与画笔

一、turtle画布与坐标系 在同一平面互相垂直且有公共原点的两条数轴构成平面直角坐标系。在坐标系中&#xff0c;水平方向的轴都称为x轴&#xff0c;垂直方向的轴都称为y轴 它们相交于O点&#xff0c;在这一个点里&#xff0c;x轴的值为0&#xff0c;y轴的值也为0&#xff0c;所…

c#图片作为鼠标光标

图片转换为鼠标光标代码如下&#xff1a; private void Form1_Load(object sender, EventArgs e) {//button1.Cursor System.Windows.Forms.Cursors.Hand;Bitmap bmp new Bitmap("780.jpg");Cursor cursor new Cursor(bmp.GetHicon());button1.Cursor cursor;} …

如何异地链接Pycharm服务器进行远程开发并实现与公司服务器资源同步

文章目录 一、前期准备1. 检查IDE版本是否支持2. 服务器需要开通SSH服务 二、Pycharm本地链接服务器测试1. 配置服务器python解释器 三、使用内网穿透实现异地链接服务器开发1. 服务器安装Cpolar2. 创建远程连接公网地址 四、使用固定TCP地址远程开发 本文主要介绍如何使用Pych…

2024年美赛数学建模思路 - 复盘:校园消费行为分析

文章目录 0 赛题思路1 赛题背景2 分析目标3 数据说明4 数据预处理5 数据分析5.1 食堂就餐行为分析5.2 学生消费行为分析 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 赛题背景 校园一卡通是集…

华为mux vlan+DHCP+单臂路由用法配置案例

最终效果&#xff1a; vlan 2模拟局域网服务器&#xff0c;手动配置地址&#xff0c;也能上公网 vlan 3、4用dhcp分配地址 vlan 4的用户之间不能互通&#xff0c;但可以和其它vlan通&#xff0c;也能上公网 vlan 3的用户不受任何限制可以和任何vlan通&#xff0c;也能上公网 交…

oracle 12c pdb expdp/impdp 数据导入导出

环境 (源)rac 环境 byoradbrac 系统版本&#xff1a;Red Hat Enterprise Linux Server release 6.5 软件版本&#xff1a;Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit byoradb1&#xff1a;172.17.38.44 byoradb2&#xff1a;172.17.38.45 (目的&am…

vivado ip manager cache

https://china.xilinx.com/video/hardware/configuring-managing-reusable-ip-vivado.html “Core Containers”&#xff08;核容器&#xff09;&#xff1a;勾选Use Core Containers for IP&#xff08;为 IP 使用核容器&#xff09;即可使用核容器功能&#xff0c;该功能支持…

LeetCode讲解篇之39. 组合总和

文章目录 题目描述题解思路题解代码 题目描述 题解思路 首先排序数组&#xff0c;然后开始选择数字&#xff0c;当选择数字num后&#xff0c;在去选择大于等于num的合法数字&#xff0c;计算过程中的数字和&#xff0c;直到选数字和等于target, 加入结果集&#xff0c;若数字和…

002 Golang-channel-practice

第二题&#xff1a; 创建一个生产器和接收器&#xff0c;再建立一个无缓冲的channel。生产器负责把数据放进管道里&#xff0c;接收器负责把管道里面的数据打印出来。这里我们开5个协程把数据打印出来。 直接上代码&#xff01; package mainimport ("fmt" )func …

基于微信小程序的音乐平台 开源项目

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示 四、核心代码4.1 查询单首音乐4.2 新增音乐4.3 新增音乐订单4.4 查询音乐订单4.5 新增音乐收藏 五、免责说明 一、摘要 1.1 项目介绍 基于微信小程序JAVAVueSpringBootMySQL的音乐平台&#xff0c;包含了音乐…