操作 Docker 存储卷的常用指令汇总

1. 什么是存储卷?

   存储卷就是将宿主机的本地文件系统中存在的某个目录直接与容器内部的文件系统上的某一目录建立绑定关系。使得可以在宿主机和容器内共享数据库内容,让容器直接访问宿主机中的内容,也可以宿主机向容器写入内容,容器和宿主机的数据读写是同步的

  存储卷可以分为三类:

  1. 管理卷:默认映射到宿主机的/var/lib/docker/volumes 目录下, 只需要在容器内指定容器的挂载点是什么,而被绑定宿主机下的那个目录,是由容器引擎 daemon 自行创建一个空的目录。
  2. 绑定数据卷:映射到宿主机指定路径下,在宿主机上的路径要人工的指定一个特定的路径。
  3. 临时数据卷:映射到于宿主机内存中,一旦容器停止运行,tmpfs、mounts 会被移除,数据就会丢失,用于高性能的临时数据存储。

2. 管理卷

   存储卷可以通过命令方式创建,也可以在创建容器的时候通过 -v and --mount 指定。

2.1 Volume 命令操作

命令功能
docker volume create创建存储卷
docker volume inspect显示存储卷详细信息
docker volume ls列出存储卷
docker volume prune清理所有无用数据卷
docker volume rm删除卷,使用中的无法删除
2.1.1 docker volume create
  • 功能:创建存储卷
docker volume create [OPTIONS] [VOLUME]
  • 参数:
    • -d:指定驱动,默认是 local
    • –label:指定元数据(标签,给卷添一些备注信息)

image.png

    通过这种方式创建出来的卷的默认的目录是/data/var/lib/docker/volumes/

image-20240213222504552

--label 是设置卷的备注信息。

image-20240213214447049

2.1.2 docker volume inspect
  • 功能:查看卷详细信息(上面的演示)
docker volume inspect VOLUME
2.1.3 docker volume ls
  • 功能:列出所有的卷
docker volume ls [OPTIONS]
  • 参数:
    • –format:指定相应个格式,如 json,table
    • -f:过滤
    • -q:仅显示名称

image-20240213220014550

2.1.4 docker volume rm
  • 功能:删除卷,需要容器不使用。
docker volume rm [OPTIONS] VOLUME [VOLUME...]
  • 参数:-f:强制删除

image-20240213221204816

2.1.5 docker volume prune
  • 功能:删除不使用的本地卷
docker volume prune [OPTIONS]
  • 参数:
    • –filter:过滤
    • -f:不提示是否删除

2.2 -v 或者–mount 指定

2.2.1 -V 参数
docker run -v name:directory[:options]
  • 参数
    • 第一个参数:卷名称
    • 第二个参数:卷映射到容器的目录
    • 第三个参数:选项,如 ro 表示 readonly(表示只读,不允许删除容器中的文件)
# 运行一个容器
docker run -d --name mynginx2 -v volnginx2:/user/share/nginx/html/ nginx:1.24.0

  运行一个容器,将容器/user/share/nginx/html/目录下的文件自动拷贝volnginx1卷上(自己创建这个卷)。

image-20240214164117096

image-20240214164801567

  • 如果删除容器中的文件,宿主机将会跟着删除。

image-20240214165059819

  为了避免上面的这种情况,就要加上 :ro 就可避免容器中的文件被删除。ro它表示只读,可以修改宿主机的文件,但是容器里的文件修改不了。

docker run -d --name mynginx2 -v volnginx2:/user/share/nginx/html/:ro nginx:1.24.0
2.2.2 --mount 参数
  • 功能:完成目录映射
--mount '<key>=<value>,<key>=<value>'
  • 参数:
    • type:类型表示 bind, volume, tmpfs
    • src:对于命名卷,这是卷的名称。对于匿名卷(名称为一串字符串),省略此字段。
    • dst,target:文件或目录挂载在容器中的路径。
    • ro,readonly:只读方式挂载。
docker run -d --name mynginx4 --mount 'src=nginxvol4,dst=/usr/share/nginx/html,ro' nginx:1.24.0

  将容器中/usr/share/nginx/html目录下的文件与nginxvol4卷相映射。

  1. 如果删除容器,卷是不会删除的,也就说宿主机中的文件会保留(这也是卷的作用)。
  2. 如果修改宿主机中的文件,容器里的文件会自动更新(前提是容器不是只读模式)。

3 绑定卷

  绑定卷跟管理卷中的 -v、––mount是一样的。

3.1 -v 参数创建卷

  • 功能:完成卷映射
docker run -v name:directory[:options]
  • 参数:
    • 第一个参数:宿主机目录,这个和管理卷是不一样的。(随着写法变动)
    • 第二个参数:卷映射到容器的目录。
    • 第三个参数:选项,如 ro 表示 readonly
# 运行并绑定
docker run -d --name mynginx6 -v /root/data:/usr/share/nginx/html nginx:1.24.0

  这时候就是将宿主机中的/root/data目录与容器中的/usr/share/nginx/html目录相绑定。这时候容器和宿主机中的初始文件都消失了(index.html)。

image-20240215104034668

  /root/data目录下没有html文件,没有拷贝过来。

# 查看详细信息
docker inspect mynginx6

image-20240215104224393

3.2 --mount 参数

  这跟 -v 是很相似的,就是将卷的名称替换为宿主机的目录,区别是一定要加上type参数,bind 表示绑定卷。

docker run -d --name myngixn7  --mount type=bind,src=/root/data,dst=/usr/share/nginx/html nginx:1.24.0

-v 与 --mount 的区别: -v 创建卷的时候,宿主机的目录可以不用存在;而 --mount 必须先创建目录再绑定,不然会报错。

4.临时卷

  临时卷数据位于内存中,在容器与宿主机之外。

4.1 指定 --tmpfs 创建

  在创建一个临时目录/test1

docker run --name mynginx8 -d --tmpfs /test1 nginx:1.24.0

  可以通过 docker inspect mynginx8 来查看。

image-20240215114732051

   /test1 在容器的目录中,但是数据是存储在内存中的。如果容器重启,那么该目录下的。

image-20240215115148428

4.2 --mount 参数

--mount '<key>=<value>,<key>=<value>'
  • 参数:
    • type:类型表示 bind, volume,tmpfs。
    • src:宿主机目录,这个和管理卷是不一样的。
    • dst,target:文件或目录挂载在容器中的路径。
    • ro,readonly:只读方式挂载。

  只需要 type 类型为 tmpfs 就行了。

docker run -d -p 80:80 --name bind1 --mount type=tmpfs,source=/root/data,target=/usr/share/nginx/html nginx:1.24.0

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

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

相关文章

(通信)驻波

驻波是一种物理现象&#xff0c;它发生在频率相同、传输方向相反的两种波&#xff08;不一定是电波&#xff09;沿传输线形成的一种分布状态。 在这种状态下&#xff0c;一个波通常是另一个波的反射波。 在驻波中&#xff0c;波节和波腹的位置始终保持不变&#xff0c;给人一种…

了解Ping、Wget、端口、Netstat和Curl命令

1. 端口 1.1 什么是端口&#xff1f; 端口是一种用于标识不同应用程序或服务的逻辑通道。它是一个数字&#xff0c;取值范围从0到65535。常见的端口有一些已经被标准化&#xff0c;比如HTTP使用的80端口&#xff0c;HTTPS使用的443端口。 1.2 了解端口状态 使用netstat -an…

【深度学习】Pytorch 系列教程(二):PyTorch数据结构:1、Tensor(张量): GPU加速(GPU Acceleration)

文章目录 一、前言二、实验环境三、PyTorch数据结构0、分类1、Tensor&#xff08;张量&#xff09;1. 维度&#xff08;Dimensions&#xff09;2. 数据类型&#xff08;Data Types&#xff09;3. GPU加速&#xff08;GPU Acceleration&#xff09;查看可用gpu张量移动经典语句d…

边缘计算第二版施巍松——第8章边缘计算系统实例

8.1边缘计算系统概述 1.Cloudlet 架构&#xff1a;移动设备-Cloudlet-云 cloudlet也可以像云一样为用户提供服务&#xff0c;Cloudlet离移动设备只有一跳的距离&#xff0c;具有物理距离的临近性&#xff0c;可以保证实时反馈时延低&#xff0c;又可以利用局域网的高带宽优势&…

(五)【Jmeter】使用代理录制HTTP脚本操作步骤及注意事项

前置信息 软件版本Jmeter5.6.3 服务网址备注drupalhttp://192.168.88.88:18080/&#xff08;二&#xff09;【Jmeter】专栏实战项目靶场drupal部署 用户名密码test1test1test2test2 实操记录 1、启动jmeter&#xff0c;操作顺序见下图 2、在视图面板添加如下信息&#x…

[office] Excel 数据库函数条件区域怎样设置 #笔记#笔记

Excel 数据库函数条件区域怎样设置 以下面的数据表格为例&#xff0c;对于条件区域的设置&#xff0c;有几方面需要注意的内容&#xff0c;下面就一起看看如何对Excel 数据库函数条件区域设置的吧。希望会大家有所帮助 以下面的数据表格为例&#xff0c;对于条件区域的设置&am…

计算机设计大赛 深度学习OCR中文识别 - opencv python

文章目录 0 前言1 课题背景2 实现效果3 文本区域检测网络-CTPN4 文本识别网络-CRNN5 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; **基于深度学习OCR中文识别系统 ** 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;…

Lag-Llama:第一个时间序列预测的开源基础模型介绍和性能测试

2023年10月&#xff0c;我们发表了一篇关于TimeGPT的文章&#xff0c;TimeGPT是时间序列预测的第一个基础模型之一&#xff0c;具有零样本推理、异常检测和共形预测能力。 虽然TimeGPT是一个专有模型&#xff0c;只能通过API访问。但是它还是引发了对时间序列基础模型的更多研…

Unity如何修改预制体(预制件)?

文章目录 19 复制复制复制&#xff0c;预制体与变体 19 复制复制复制&#xff0c;预制体与变体 【预制件】 预制件作用&#xff1a;方便复用 【预制件】的制作 直接拖拽&#xff0c;从层级面板 -> 项目面板。层级面板中当前图标会变蓝&#xff0c;子物体名字变蓝色。预制件…

[经验] 做完腺样体手术打呼噜很严重怎么办 #媒体#笔记#经验分享

做完腺样体手术打呼噜很严重怎么办 1、打呼噜很严重怎么办 打呼噜是一种常见的睡眠障碍&#xff0c;不仅让睡眠质量变得很糟糕&#xff0c;也会影响室友或家人的睡眠质量。幸运的是&#xff0c;有许多方法可以减少打呼噜的发生率&#xff0c;从而让睡眠变得更好。 保持良好的…

具有集中目录服务器的 P2P 工作方式

P2P 工作方式概述 在 P2P 工作方式下&#xff0c;所有的音频/视频文件都是在普通的互联网用户之间传输。 具有集中目录服务器的 P2P 工作方式 Napster 最早使用 P2P 技术&#xff0c;提供免费下载 MP3 音乐。 Napster 将所有音乐文件的索引信息都集中存放在 Napster 目录服务…

ng : 无法加载文件 C:\Program Files\nodejs\node_global\ng.ps1, 因为在此系统上禁止运行脚本

ng : 无法加载文件 C:\Program Files\nodejs\node_global\ng.ps1&#xff0c;因为在此系统上禁止运行脚本 今天在VSCode中运行ng serve --port 8081运行基于Angular的项目时&#xff0c;报错了&#xff0c;错误如下图所示&#xff1a; 解决方法&#xff1a; 按照下图的5步即…

算法沉淀——哈希算法(leetcode真题剖析)

算法沉淀——哈希算法 01.两数之和02.判定是否互为字符重排03.存在重复元素04.存在重复元素 II05.字母异位词分组 哈希算法&#xff08;Hash Algorithm&#xff09;是一种将任意长度的输入&#xff08;也称为消息&#xff09;映射为固定长度的输出的算法。这个输出通常称为哈希…

七、Mybatis缓存

缓存就是内存中的数据&#xff0c;常常来自对数据库查询结果的保存&#xff0c;使用缓存、可以避免频繁的与数据库进行交互&#xff0c;进而提高响应速度一级缓存是sqlSession级别的缓存&#xff0c;在操作数据库时需要构造sqlsession对象&#xff0c;在对象中有一个数据结构&a…

【智能家居入门3】(MQTT服务器、MQTT协议、微信小程序、STM32)

前面已经写了三篇博客关于智能家居的&#xff0c;服务器全都是使用ONENET中国移动&#xff0c;他最大的优点就是作为数据收发的中转站是免费的。本篇使用专门适配MQTT协议的MQTT服务器&#xff0c;有公用的&#xff0c;也可以自己搭建&#xff08;应该要钱&#xff09;&#xf…

【Java程序员面试专栏 分布式中间件】ElasticSearch 核心面试指引

关于ElasticSearch 部分的核心知识进行一网打尽,包括ElasticSearch 的基本概念,基本架构,工作流程,存储机制等,通过一篇文章串联面试重点,并且帮助加强日常基础知识的理解,全局思维导图如下所示 基础概念 从数据分类入手,考察全文索引的基本概念 现实世界中数据有哪…

量子算法入门——2.线性代数与复数

参考资料&#xff1a; 【【零基础入门量子计算-第03讲】线性代数初步与复数】 来自b站up&#xff1a;溴锑锑跃迁 建议关注他的更多高质量文章&#xff1a;CSDN&#xff1a;【溴锑锑跃迁】 0. 前言 强烈建议搭配b站原视频进行观看&#xff0c;这只是我当时看的笔记&#xff0c…

【机器学习笔记】4 朴素贝叶斯

贝叶斯方法 贝叶斯分类 贝叶斯分类是一类分类算法的总称&#xff0c;这类算法均以贝叶斯定理为基础&#xff0c;故统称为贝叶斯分类。 朴素贝叶斯分类是这一类算法中最简单的较为常见的算法。 先验概率 根据以往经验和分析得到的概率。我们用&#x1d443;(&#x1d44c;)来代…

FL Studio 21.2.3.4004 All Plugins Edition Win/Mac音乐软件

FL Studio 21.2.3.4004 All Plugins Edition 是一款功能强大的音乐制作软件&#xff0c;提供了丰富的音频处理工具和插件&#xff0c;适用于专业音乐制作人和爱好者。该软件具有直观的用户界面&#xff0c;支持多轨道录音、混音和编辑&#xff0c;以及各种音频效果和虚拟乐器。…

华清远见嵌入式学习——春节作业——2.15日

作业要求&#xff1a; 编写led驱动&#xff0c;通过应用程序控制三盏灯亮灭 作业答案&#xff1a; 作业效果&#xff1a; mychrdev.c #include <linux/init.h> #include <linux/module.h> #include <linux/fs.h> #include <linux/uaccess.h> #incl…