Docker——数据卷命令

news2025/7/20 17:18:59

目录

一、数据卷

1.1  便于修改

1.2  数据共享

1.3 安全问题

1.4 数据卷的基本语法

二、 创建数据卷,并查看数据卷在宿主机的目录位置

 2.1 创建数据卷

 2.2 查看所有数据卷

 2.3 查看数据卷详细信息卷

 2.4  删除数据卷

三、挂载数据卷

3.1 创建容器并挂载数据卷到容器内的HTML目录

3.2 进入html数据卷所在位置,并修改HTML内容

3.3 数据卷不创建时是否会挂载成功?

四、创建并运行一个MYSQL容器,将宿主机目录直接挂载到容器

4.1 添加mysql镜像

4.2 添加目录及文件

4.3 创建MySQL容器

 4.4 与数据卷挂载方式的对比


一、数据卷

  容器与数据耦合的问题

   数据卷:volume,是一个虚拟的目录,指向宿主机文件系统中的某个目录

   数据卷的作用:将容器与数据分离,解耦合,方便操作容器内数据,保证数据安全

     数据卷操作:

   1.1  便于修改

       比如说,我们在宿主机文件系统中修改,一定会立即反应到数据卷(volumes)对应的容器内部,不用再进入容器内部修改

   

 1.2  数据共享

也方便了数据的共享第二个容器的config目录也来挂载config数据卷,也就是说两个容器可以挂载同一个卷,我们在宿主机文件系统中做的一切修改,这两个容器也能看到,这就是数据共享

1.3 安全问题

    还有一个就是安全问题,比如说我们不小心把容器给删掉了,但是数据卷还没有删,所有的数据都还在,我们可以创建一个容器,然后接着挂载到数据卷上去,就可以了

1.4 数据卷的基本语法

 

二、 创建数据卷,并查看数据卷在宿主机的目录位置

 2.1 创建数据卷

docker volume create 数据卷名称

 2.2 查看所有数据卷

docker volume ls

发现有我们刚刚创建的html

 2.3 查看数据卷详细信息卷

docker volume inspect 数据卷名

可以看出挂载点在:/var/lib/docker/volumes/html/_data

 2.4  删除数据卷

命令:删除所有的本地未使用的卷

docker volume prune

命令: 删除指定数据卷

docker volume rm  数据卷名

三、挂载数据卷

我们在创建容器时,可以通过-v参数来挂载一个数据卷到某个容器目录

案例:创建一个nginx容器,修改容器内html目录内的index.html内容

需求说明:

        上个案例中,我们进入nginx容器内部,已经知道nginx的html目录所在位置

/usr/share/nginx/html,我们需要把这个目录挂载到html这个数据卷上,方便操作其中的内容。

提示:运行容器时使用-v参数挂载数据卷

3.1 创建容器并挂载数据卷到容器内的HTML目录

查看一下是否有nginx,发现并没有,下面我们就可以安心的创建nginx容器

Docker——容器命令介绍、创建Nginx容器与Redis容器_我爱布朗熊的博客-CSDN博客

 不熟悉容器命令,可以看一下上面这篇文章

创建nginx容器

      docker run 创建容器

      --name mn  容器的名字是mn 

      -p:将宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口(如果没有  这个,没有人能访问这个容器),宿主机的端口只要没有被占用就可写(我的80端口被占用了,我用的81),容器内往往取决于应用程序本身,一般Nginx是80

    -v 数据卷名称(html):容器内目录(/usr/share/nginx/html)

    -d  : 后台运行程序 

    nginx:镜像的名称,例如:some-content-nginx,没写tag就是最新

docker run --name mn -p 81:80 -v html:/usr/share/nginx/html -d nginx

如果不记得了/usr/share/nginx/html,去官网查

我们先查看一下数据卷的位置:/var/lib/docker/volumes/html/_data

进入到数据卷的位置我们电脑下面

 \\wsl$\docker-desktop-data\data\docker\volumes

  在下面这个路径下的html/_data

或者直接从我们的可视化界面查看 ,如果出现的话,就说明挂载成功了

 
 

3.2 进入html数据卷所在位置,并修改HTML内容

\\wsl$\docker-desktop-data\data\docker\volumes\html\_data

 之后我们修改一下代码,我是在这个文件下用vscode编译器打开修改的,记得保存!!!

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>风里雨里,山东等你</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

然后我们来页面看一下,因为我配置的是81,配置的什么端口号,这里就填什么端口号

  3.3 数据卷不创建时是否会挂载成功?

  在我们刚刚完成的案例中,我们的数据卷是创建好的,如果数据卷不存在,会不会成功?

先删除之前的容器和清楚数据卷

再次创建nginx容器(在此之前不创建html数据卷)

 创建容器并挂载数据卷到容器内的HTML目录

 

我们查看一下数据卷,发现是是存在的,说明自动把卷创建出来了

页面也恢复了之前的内容

四、创建并运行一个MYSQL容器,将宿主机目录直接挂载到容器

这个地方写的不好,我也没太理解

提示: 目录挂载与数据卷挂载的语法是类似的

  • -v[宿主机目录]:[容器内目录]
  • -v[宿主机文件]:[容器内文件]

4.1 添加mysql镜像

   如果对添加镜像陌生,可以查看下面这篇博客

Docker——镜像操作命令_我爱布朗熊的博客-CSDN博客

我们查看一下镜像,也确实存在

4.2 添加目录及文件

 创建两个目录

 在conf文件夹下添加下面的文件

 

4.3 创建MySQL容器

去dockerhub查阅资料,创建并运行mysql容器

  要求:挂载/tmp/mysql/data到mysql容器内数据存储目录

             挂载/tep/mysql/conf/hmy.cnf到mysql容器的配置文件

             设置MySQL密码

Docker Hub

docker run --name mysql -e MYSQL_ROOT_PASSWORD=12  -v /tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d    -v /tmp/mysql/data:/var/lib/mysql     -p 3306:3306    -d mysql

 我们可以看到,已经创建出来了

 

然后我们在Navicat连接一下试试

 

 切记:当我们连接的时候,我们运行时创建的什么密码,下面的密码就填写什么,否则就会报错

 

 4.4 与数据卷挂载方式的对比

数据卷的方式相当于全交给了docker去管理,我们不用关系但是劣势是目录不是我们创建的,我们想要找就比较的麻烦

  目录挂载的优势就是我们可以很好的知道文件在哪

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智慧国土解决方案-最新全套文件

智慧国土解决方案-最新全套文件一、建设背景二、建设思路1、紧盯三大领域2、划分三个阶段3、面向三个维度三、建设方案轻应用微服务大平台应用设计四、获取 - 智慧国土全套最新解决方案合集一、建设背景 2019年5月9日&#xff0c;印发《关于建立国土空间规划体系并监督实施的若…

Pandas 数据中的loc与iloc含义以及操作

本节学习并记录pandas 的DataFrame类型的数据是怎么对列或者行进行操作的 1、df.loc: 语法格式是df.loc[<行表达式>, <列表达式>]&#xff0c;如果列不传将返回所有的行&#xff0c;loc操作通过索引和列的条件筛选出数据。 2、df.iloc: 语法格式是df.iloc[<行…

python初级学习

第一章 为什么要学习Python 那些最好的程序员不是为了得到更高的薪水或者得到公众的仰慕而编程,他们只是觉得这是-件有 趣的事情。 ——Linux 之父 Linus TorvaIds 作为-个实用主义的学习者,最关心的问题-定是「我为什么要选择学 Python, 学会之后我可以用来做什么&#xff1…

基于springboot电动车智能充电服务平台设计与实现的源码+文档

摘 要 在Internet高速发展的今天&#xff0c;我们生活的各个领域都涉及到计算机的应用&#xff0c;其中包括电动车智能充电服务平台的网络应用&#xff0c;在外国电动车智能充电服务平台已经是很普遍的方式&#xff0c;不过国内的电动车智能充电服务平台可能还处于起步阶段。电…

Briefings in bioinformatics2022 | 基于神经网络的分子性质预测通用优化策略

原文标题&#xff1a;A general optimization protocol for molecular property prediction using a deep learning network 代码&#xff1a;GitHub - titanda/Learn-it-all at ready_classification_feature 一、问题提出 虽然个别优化方法都成功地提高了模型的性能&#…

2022年IT服务行业研究报告

第一章 行业概况 IT服务是指在信息技术领域服务商为其用户提供信息咨询、软件升级、硬件维修等全方位的服务。IT服务产品包括&#xff1a;硬件集成、软件集成、通用解决方案、行业解决方案和IT综合服务。 服务过程是指IT需求得以满足的全过程&#xff0c;从IT服务商为用户提供…

小咖啡馆也能撬动大生意

在我们的传统观念里&#xff0c;无论什么行业&#xff0c;似乎店越大、生意也就越大&#xff0c;但事实真的如此吗&#xff1f;未必&#xff01;位于成都的原福咖啡馆整店大小仅10㎡&#xff0c;但在社区却人气非常高。从2018年开业至今&#xff0c;门店排队不断&#xff0c;而…

Pycharm初次创建项目时页面环境变量选择

Pycharm确实是一个非常不错的Python开发IDE&#xff0c;尤其对于初学者而言。 安装完Pycharm&#xff0c;并未创建任何工程项目时的界面&#xff0c;选择新建一个Pure Python项目&#xff0c; 基于上述界面解读 &#xff1a; 1是新建项目路径可以在Location处选择。 2是Proje…

MapReduce

4.1 MapReduce概述 2003年和2004年&#xff0c;Google公司在国际会议上分别发表了两篇关于Google分布式文件系统和MapReduce的论文&#xff0c;公布了Google的GFS和MapReduce的基本原理和主要设计思想。 4.1.1 MapReduce定义 MapReduce是一个分布式运算程序的编程框架&#…

基于GIS的人口统计数据空间化解决方案

​ 人口数据一般以各种级别的行政区域为统计单位&#xff0c;使用表格进行展示。常用的人口分布度量指标是人口密度&#xff0c;即行政区域内单位土地面积上的人口数量&#xff0c;这种以行政辖区为单位进行统计的方法&#xff0c;统计的结果是假定人口均匀分布在整个区域内&a…

Flink的检查点和保存点

在分布式架构中&#xff0c;当某个节点出现故障&#xff0c;其他节点基本不受影响。这时只需要重启应用&#xff0c;恢复之前某个时间点的状态继续处理就可以了。这一切看似简单&#xff0c;可是在实时流处理中&#xff0c;我们不仅需要保证故障后能够重启继续运行&#xff0c;…

2023年系统规划与设计管理师-第二章信息技术知识

1. 软件工程 2. 面向对象 3. 开发模型 4. 开发方法 4.1 敏捷开发方法 4.2 RUP 5. 数据仓库和网络技术 5.1 网络七层结构 5.2 各设备位于哪一次 5.3 各层的协议 5.4 TCP分层 5.5 IPv6 VS IPv4 5.6 IPv4 &#xff1a;A类、B类、C类地址的划分 A类地址的第一组数字为1&#xff5…

【Python+Appium】开展自动化测试(5)appium元素定位常用方法

目录 前言 一&#xff0c;使用uiautomatorview对app页面截图&#xff0c;查看元素属性 二&#xff0c;appium移动端自动化常用的元素定位方法 1&#xff0c;find_element_by_id() 2&#xff0c;find_element_by_class_name() 3&#xff0c;find_element_by_xpath() 三&a…

D-014 温度传感器硬件电路设计

温度传感器硬件电路设计1 简介1.1 温度湿度传感器DHT111.2 温度传感器DS18B202 电路实战3 温度传感器芯片1 简介 温度传感器是指能感受温度并转换成可用输出信号的传感器。温度传感器是温度测量仪表的核心部分&#xff0c;品种繁多。常见的温度传感器有&#xff1a; 1.1 温度…

PGL图学习之图神经网络ERNIESage、UniMP进阶模型[系列八]

PGL图学习之图神经网络ERNIESage、UniMP进阶模型[系列八] 原项目链接&#xff1a;fork一下即可&#xff1a;https://aistudio.baidu.com/aistudio/projectdetail/5096910?contributionType1 相关项目参考&#xff1a;&#xff08;其余图神经网络相关项目见主页&#xff09; …

你理解的 ANR 监控可能一直是错的……

主要说了几种主流的卡顿监控方式&#xff1a; 通过开一个子线程不断去轮询主线程。原理就是不断向主线程发送Message&#xff0c;每隔一段时间检查一次刚刚发送的消息是否被处理&#xff0c;如果没被处理&#xff0c;说明这段时间主线程被卡住了。 通过使用系统方法 setMessag…

ADAU1860调试心得(3)接口说明以及硬件搭建步骤

这个板子是我做的&#xff0c;我做了 3 路模拟输入&#xff0c;1 路模拟输出&#xff0c;我做硬件设计从来就是怎么省事怎么来&#xff0c;所以就直接照着ADI给我的参考设计来的&#xff0c;关键电路坚决不创新&#xff0c;抄就完了。来看看接口的布局情况&#xff1a;三个绿色…

HttpClient别说话,用心看

官网:Apache HttpComponents – Apache HttpComponents 常见使用场景:1.爬虫(python相对做爬虫专业,但是java也可以做) 2.与其他应用进行交互时候 注意下,不同的HttpClient的jar包版本,API和包路径有明显不同 先使用JDK原生API请求网页 将控制台的复制保存为html文件 双击打…

vscode配置自定义代码片段模板

目录1、打开vscode&#xff0c;使用快捷键打开搜索面板2、输入snippets, 点击 代码片段&#xff1a;配置用户代码片段3、模板配置3.1 vue模板配置3.2 全局模板配置1、打开vscode&#xff0c;使用快捷键打开搜索面板 win: Ctrl Shift P mac: command Shift P 2、输入snipp…

圆通山美食城旅游发展总体规划

目 录 目 录 - 1 - 第一章 项目背景及区域概况 - 4 - 一、项目开发背景 - 4 - &#xff08;一&#xff09;项目区位 - 4 - &#xff08;二&#xff09;自然环境条件 - 4 - 1.气候 - 4 - 2.植被 - 5 - &#xff08;三&#xff09;社会经济条件 - 5 - 第二章 SWOT分析 - 6 - 一、…