【Docker】数据管理
🥳🥳Welcome 的Huihui's Code World ! !🥳🥳
接下来看看由辉辉所写的关于Docker的相关操作吧
目录
🥳🥳Welcome 的Huihui's Code World ! !🥳🥳
前言
一.数据卷
示例演示
示例剖析
数据卷的概述
数据卷的使用
二.数据卷的使用
1.创建数据卷
2.查看所有数据卷
3.查看数据卷信息
4.查看数据卷的具体信息
5.删除一个数据卷
6.挂载数据卷
三. 挂载主机目录
挂载目录
案例
前言
上篇博文已经介绍了Docker时什么以及它的初步使用,也了解到的它的好处和妙处。但是我们在使用Docker的时候,也会遇到一些问题。在以前传统的虚拟化环境中,数据通常存储在主机的硬盘上,容器直接访问主机的文件系统。然而,这种方法在容器化环境下并不适用,因为容器的可移植性和隔离性会导致数据丢失的问题。所以,我们需要使用特定的数据管理策略来解决这个问题。那么这篇博文讲的就是Docker的数据管理。
一.数据卷
上面也说了,在容器化的环境中,数据可能会丢失,但这样的一句话好像不够具象,那么这里我就用一个示例来演示一下。
示例演示
首先创建并且开启这个容器
进入这个容器并且创建一个文件
查看一下
其中它显示出的是Linux系统中常见的标准目录
bin目录通常存放二进制可执行文件 dev目录通常存放设备文件 etc目录通常存放系统配置文件 home目录通常存放用户主目录 lib和lib64目录通常存放系统库文件 lost+found目录通常用于恢复文件系统中丢失的数据 media和mnt目录通常用于挂载外部设备或者网络文件系统 opt目录通常存放第三方软件包 proc目录通常是一个虚拟文件系统,提供了关于当前进程和系统运行状态的信息 root目录通常是root用户的主目录 run目录通常存放运行时需要的文件 sbin目录通常存放系统管理员使用的二进制可执行文件 srv目录通常存放系统服务相关的数据 sys目录通常是一个虚拟文件系统,提供了关于系统硬件和内核的信息 tmp目录通常存放临时文件 usr目录通常存放系统共享的只读文件 var目录通常存放系统运行时需要修改的文件这时候把容器都删掉
docker rm -f $(docker ps -aq)
这时候再看一下根目录,其中那个txt的文件也已经不存在了
示例剖析
上面的例子就是模拟我们开发中会遇到的情况,上面的那个容器,在开发中,就是我们存放资源的地方,如果我不小心将容器删除了,那么这个资源也不见了,每个容器又都是独立的,这些数据资源又是跟容器绑定的,如果容器消失了,那么数据资源也会消失。所以需要一个东西,它可以是数据能够共享。
数据卷的概述
数据卷是一个可供容器使用的特殊目录,它绕过文件系统可以提供很多有用的特性。
- - 数据卷可以在容器之间共享和重用
- - 对数据卷的修改会立马生效
- - 对数据卷的更新不会影响镜像,
- - 数据卷默认会一直存在,即使容器被删除
数据卷的使用
这里使用数据卷挂载tomcat容器,所以我们需要先拉取tomcat的镜像,并且创建一个tomcat的容器【下面这个命令行就是一行完成了】
docker run -itd --name d1 -p 8080:8080 --mount source=v1,target=/usr/local/tomcat/webapps tomcat:8.5.40
docker run:这是Docker命令,用于创建和运行一个新的容器。-itd:这些是命令的选项参数。它们分别表示使用交互式终端(-i),分离模式运行容器(-d),以及为容器分配一个伪终端(-t)。--name d1:这是容器的名称,此处为"d1"。您可以根据需要指定任何合适的名称。-p 8080:8080:这是端口映射选项,将主机的8080端口映射到容器的8080端口。这样,就可以通过访问主机的8080端口来访问Tomcat容器。--mount source=v1,target=/usr/local/tomcat/webapps:这是挂载选项,它将名为"v1"的卷挂载到容器的"/usr/local/tomcat/webapps"目录上。这样,就可以将本地文件系统中的数据卷挂载到Tomcat容器,实现文件共享或持久化存储。tomcat:8.5.40:这是要拉取和运行的Docker镜像的名称和标签。在这种情况下,它是Tomcat 8.5.40版本的官方镜像。但是我们也不要忘记将虚拟机中的端口号开放
firewall-cmd --zone=public --add-port=8080/tcp还要记得刷新一下防火墙哦
firewall-cmd --reload然后我们就可以访问到tomcat了
我们常常会用这个tomcat来发布项目
但是我们没有设置用户信息,就不能够发布
所以我们就需要使用数据卷啦,在外面将文件修改好,然后把原先的文件给它替换掉。有人可能会问,那为什么不适用vi或者vim去修改tomcat中的文件呢?但其实这些命令它都没有,就连下载的命令都没有,所以目前我们使用数据卷的方式是比较好的
二.数据卷的使用
1.创建数据卷
docker volume create 数据卷名称
2.查看所有数据卷
docker volume ls
3.查看数据卷信息
docker volume inspect 数据卷名称
4.查看数据卷的具体信息
docker inspect 数据卷名称5.删除一个数据卷
docker volume rm 数据卷名称
6.挂载数据卷
- 最好是通过run而非create/start创建启动容器,create/start命令创建启动容器后,再挂载数据卷 相当麻烦,要修改很多配置文件,但并非不可以
- 如果数据卷不存在,docker会自动创建
- 如果容器上目录不存在, docker会自动创建
docker run -itd \ --name 容器名字 \ --mount source=数据卷名称,target=容器中的对应目录 \ 镜像名称把我们需要发布的war包放进去
挂载数据卷
然后便可以在浏览器访问到这个项目了,但是也会出现问题,因为我们这样子写是将其中【webapps中的文件内容】的文件夹都给替换了,就只剩下我们放进去的war包了....这样显然不是我们预期的结果。所以我们需要用到一个更加细致的东东,它可以挂载单个的文件而不是文件夹,这里说的就是使用挂载主机目录的方式
三. 挂载主机目录
挂载目录
docker run -itd \ --name 容器名字 \ --mount type=bind,source=宿主机目录,target=容器中的对应目录 \ 镜像名称但是上面这种写法有点麻烦,我们可以使用精简版的
docker run -itd \ --name 容器名字 \ --v \ 镜像名称
这个就是可以挂载到具体的文件,同时的话也是可以挂载目录的,相比于上面的方式,更加灵活一点
tomcat和项目都能够访问
案例
目标时实现用tomcat发布项目,现在的问题就是少了一些配置文件
我们可以这样做,先打开自己本机电脑中的tomcat,先找到需要修改的两个配置文件
然后使用拖拽的方式将文件先拖拽到自己所建的一个文件夹中
然后修改这两个文件,先修改那个user的,将这个页面上面标蓝的这一段给复制过来
编辑完成之后,按esc退出编辑模式,之后:wq进行保存并退出
然后就修改第二个文件
然后进行目录挂载
这时候我们就能够登录进去发布项目啦
好啦,今天的分享就到这了,希望能够帮到你呢!😊😊
相关文章:
【Docker】数据管理
🥳🥳Welcome 的Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于Docker的相关操作吧 目录 🥳🥳Welcome 的Huihuis Code World ! !🥳🥳 前言 一.数据卷 示例演示 示例剖析…...
认识异常及异常处理机制之try-catch
异常类 什么是异常?就像人会犯错一样,程序在运行的过程中也会犯错。程序中的错误有两类,一类称为Error(错误),另一类称为Exception(异常)。Error类和Exception类都为Throwable的子类…...
html学习之路:简述html文档头部 <meta> 的 http-equiv 属性
🧋当输入网址打开网页时,设置html头部meta的http-equiv属性,可以帮助浏览器更加精确和正常却的显示网页内容,比如设置网页多久自动刷新,设置网页在浏览器缓存中的时限,设置多少事件跳转到指定的网页地址&am…...
逆矩阵计算
目录 一、逆矩阵的定义 核心:AB BA E 1)定义 2)注意 3)逆矩阵存在的条件|A| ! 0 二、核心公式: 三、求逆矩阵(核心考点) 1、伴随矩阵法 2、初等变换法(重点掌握ÿ…...
《豫鄂烽火燎原大小焕岭》:一部穿越时空的历史史诗
《豫鄂烽火燎原大小焕岭》:一部穿越时空的历史史诗 一部赓续红色血脉的生动教材 一部讴歌时代英雄和人民精神宝典 当历史的烽烟渐渐远去,留下的是一页页泛黄的记忆和无数英雄的壮丽诗篇。李传铭的力作《豫鄂烽火燎原大小焕岭》正是这样一部深情的回望&am…...
浅研究下 DHCP 和 chrony
服务程序: 1.如果有默认配置,请先备份,再进行修改 2.修改完配置文件,请重启服务或重新加载配置文件,否则不生效 有些软件,安装包的名字和系统里服务程序的名字不一样(安装包名字:…...
【算法】动态中位数(对顶堆)
题目 依次读入一个整数序列,每当已经读入的整数个数为奇数时,输出已读入的整数构成的序列的中位数。 输入格式 第一行输入一个整数 P,代表后面数据集的个数,接下来若干行输入各个数据集。 每个数据集的第一行首先输入一个代表…...
mysql服务多实例运行
1、官网下载mysql安装包 https://downloads.mysql.com/archives/community/ 2、解压安装包 tar -zxvf mysql-8.1.0-linux-glibc2.28-aarch64.tar.xz -C /usr/localmv /usr/local/mysql-8.1.0-linux-glibc2.28-aarch64 /usr/local/mysql 3、创建mysql用户组 groupadd…...
「HDLBits题解」Module fadd
本专栏的目的是分享可以通过HDLBits仿真的Verilog代码 以提供参考 各位可同时参考我的代码和官方题解代码 或许会有所收益 题目链接:Module fadd - HDLBits module top_module (input [31:0] a,input [31:0] b,output [31:0] sum );//wire [15:0] t1, t2 ; wire co…...
微软等开源评估ChatGPT、Phi、Llma等,统一测试平台
微软亚洲研究院、中国科学院自动化研究所、中国科学技术大学和卡内基梅隆大学联合开源了,用于评估、分析大语言模型的统一测试平台——PromptBench。 Prompt Bench支持目前主流的开源、闭源大语言模型,例如,ChatGPT、GPT-4、Phi、Llma1/2、G…...
DDNS-GO配置使用教程
环境:openwrt 下载地址:Releases jeessy2/ddns-go GitHub 下载 ssh至openwrt根目录,根据你的处理器选择要下载的版本,我是路由器,选择的是 ddns-go_5.7.1_linux_arm64.tar.gz wget github链接 安装 tar -zxvf…...
flex弹性盒子常用的布局属性详解
想必大家在开发中经常会用到flex布局。而且还会经常用到 justify-content 属性实现分栏等等 接下来给大家分别讲一下 justify-content 的属性值。 以下是我敲的效果图大家可以清晰看出区别 space-between 属性值可以就是说两端对齐 space-evenly 属性值是每个盒子之间的…...
2023年Gartner® DevOps平台魔力象限发布,Atlassian被评为“领导者”
Atlassian在2023年Gartner魔力象限的DevOps平台评选中,被评为领导者。 Gartner根据执行能力和愿景的完整性,对全球14家DevOps平台提供商进行了评估,并发布2023年Gartner魔力象限。其中,Atlassian被评为领导者。 Atlassian提供了一…...
kylin集群使用nginx反向代理
前文已经提到,我安装了kylin集群。 kylin3集群问题和思考(单机转集群)-CSDN博客文章浏览阅读151次,点赞3次,收藏6次。由于是同一个集群的,元数据没有变化,所以,直接将原本的kylin使用…...
小红书搜索团队提出全新框架:验证负样本对大模型蒸馏的价值
大语言模型(LLMs)在各种推理任务上表现优异,但其黑盒属性和庞大参数量阻碍了它在实践中的广泛应用。特别是在处理复杂的数学问题时,LLMs 有时会产生错误的推理链。传统研究方法仅从正样本中迁移知识,而忽略了那些带有错…...
汽车销售领域相关专业术语
引言 本文是笔者在从事汽车销售领域信息化建设过程,积累的一些专业术语注解,供诸位参考交流。 专业术语清单 4S店 汽车销售服务4S店;是由经销商投资建设,按照汽车生产厂家规定的标准建造,是一种集整车销售(Sale)、零配件(Sparepart)、售后服务(Service)、信息…...
代币合约 ERC20 Token接口
代币合约 在以太坊上发布代币就要遵守以太坊的规则,那么以太坊有什么规则呢?以太坊的精髓就是利用代码规定如何运作,由于在以太坊上发布智能合约是不能修改和删除的,所以智能合约一旦发布,就意味着永久有效,不可篡改…...
判断回文字符串—C语言
题目要求 输入一个字符串,判断该字符串是否为回文。回文就是字符串中心对称,从左向右读和从右向左读的内容是一样的。 输入格式: 输入在一行中给出一个不超过80个字符长度的、以回车结束的非空字符串。 输出格式: 输出在第1行中…...
如何在Docker本地搭建流程图绘制神器draw.io并实现公网远程访问
推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站 前言 提到流程图,大家第一时间可能会想到Visio,不可否认,VIsio确实是功能强大,但是软…...
Web前端篇——el-timeline+el-scrollbar时间轴数据刷新后自动显示滚动条
背景:使用el-timelineel-scrollbar显示时间轴,当时间轴数据刷新时,el-scrollbar滚动条会自动隐藏。 当给el-scrollbar设置了永久显示滚动条(如下代码),以为可以一劳永逸,发现问题仍然存在。 .…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
06 Deep learning神经网络编程基础 激活函数 --吴恩达
深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...
爬虫基础学习day2
# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...
分布式增量爬虫实现方案
之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...
Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...
动态 Web 开发技术入门篇
一、HTTP 协议核心 1.1 HTTP 基础 协议全称 :HyperText Transfer Protocol(超文本传输协议) 默认端口 :HTTP 使用 80 端口,HTTPS 使用 443 端口。 请求方法 : GET :用于获取资源,…...
Kafka入门-生产者
生产者 生产者发送流程: 延迟时间为0ms时,也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于:异步发送不需要等待结果,同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...
MFC 抛体运动模拟:常见问题解决与界面美化
在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...
Linux nano命令的基本使用
参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...




























