操作 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.mfbz.cn/a/388042.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于函数计算AIGC图片识别

目录 在 OSS 中建立图片目录 在函数计算中基于模板创建ImageAI应用 体验ImageAI图像识别效果 我们不但可以基于函数计算创建AIGC应用&#xff0c;实现以文生图&#xff0c;同时我们也可以基于函数计算创建ImageAI应用&#xff0c;通过简单几步实现对图片中对象的识别。下面我…

【初学者必看】迈入Midjourney的艺术世界:轻松掌握Midjourney的注册与订阅!

文章目录 前言一、Midjourney是什么二、Midjourney注册三、新建自己的服务器四、开通订阅 前言 AI绘画即指人工智能绘画&#xff0c;是一种计算机生成绘画的方式。是AIGC应用领域内的一大分支。 AI绘画主要分为两个部分&#xff0c;一个是对图像的分析与判断&#xff0c;即…

qt“五彩斑斓“ opengl

本篇文章我们来描述一下opengl相关知识 我们先看一下opengl渲染的效果 很漂亮&#xff1f; 那下面就来介绍一下这么漂亮的opengl OpenGL&#xff08;Open Graphics Library&#xff09;是一个跨平台的图形编程接口&#xff0c;用于渲染2D和3D图形。它提供了一系列函数和数据结…

小白学习Halcon100例:如何利用动态阈值分割图像进行PCB印刷缺陷检测?

文章目录 *读入图片*关闭所有窗口*获取图片尺寸*根据图片尺寸打开一个窗口*在窗口中显示图片* 缺陷检测开始 ...*1.开运算 使用选定的遮罩执行灰度值开运算。*2.闭运算 使用选定的遮罩执行灰度值关闭运算*3.动态阈值分割 使用局部阈值分割图像显示结果*显示原图*设置颜色为红色…

C语言习题----不同版本的差别

这个程序数组越界&#xff0c;但是结果是死循环&#xff1b; &#xff08;1&#xff09;死循环的这种情况只会在debug--x86的版本才会出现&#xff0c;其他版本不会出现&#xff1b;这种情况会在特定的情况下发生&#xff0c;和环境有和大的关系&#xff0c;不同的编译器对于内…

lv15 平台总线驱动开发——ID匹配 3

一、ID匹配之框架代码 id匹配&#xff08;可想象成八字匹配&#xff09;&#xff1a;一个驱动可以对应多个设备 ------优先级次低&#xff08;上一章名称匹配只能1对1&#xff09; 注意事项&#xff1a; device模块中&#xff0c;id的name成员必须与struct platform_device中…

Linux环境中的git

目录 1.要使用git&#xff0c;首先要安装git 2.首次使用git需要做的操作 3.git操作 1.要使用git&#xff0c;首先要安装git 指令&#xff1a;sudo yum install -y git 2.首次使用git需要做的操作 在gitee网页&#xff0c;在你的仓库中找到&#xff1a; 先将下面两行代码分别…

基于PSO粒子群优化的PID控制器参数整定算法matlab仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1 PID控制器简介 4.2 PSO算法原理 4.3 基于PSO的PID参数整定 5.完整工程文件 1.课题概述 基于PSO粒子群优化的PID控制器参数整定。通过PSO不断的优化&#xff0c;使得PID控制器的控制反馈误差逐渐接…

《汇编语言》- 读书笔记 - 第9章 - 转移指令的原理

《汇编语言》- 读书笔记 - 第9章 - 转移指令的原理 总结9.1 操作符 offset问题 9.1 9.2 jmp 指令9.3 依据位移进行转移的 jmp 指令jmp short 标号程序 9.1程序 9.2图 9.2 程序 9.2 的机器码 jmp near ptr 标号 9.4 转移的目的地址在指令中的 jmp 指令如何选择 jmp short、jmp n…

干货 | 实战演练基于加密接口测试测试用例设计

如果接口测试仅仅只是掌握一些requests或者其他一些功能强大的库的用法&#xff0c;是远远不够的&#xff0c;还需要具有根据公司的业务以及需求去定制化一个接口自动化测试框架能力。所以在这个部分&#xff0c;会主要介绍接口测试用例分析以及通用的流程封装是如何完成的。 首…

用HTML Canvas和JavaScript创建美丽的花朵动画效果

目录 一、程序代码 二、代码原理 三、运行效果 一、程序代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>flower</title><style>* {margin: 0;padding: 0;overflow: hidden;backg…

学习笔记20:牛客周赛32

D 统计子节点中1的个数即可&#xff08;类似树形dp&#xff1f;&#xff09; #include<iostream> #include<cstring> #include<cmath> #include<algorithm> #include<queue> #include<vector> #include<set> #include<map>u…

Nvidia 推出了本地版聊天 Chat with RTX;OpenAI联创Karpathy宣布离职专注个人项目

&#x1f989; AI新闻 Nvidia 推出了本地版聊天 Chat with RTX 摘要&#xff1a;英伟达最近发布了名为“Chat with RTX”的Demo版个性化AI聊天机器人&#xff0c;适用于Windows平台&#xff0c;需要Nvidia的30系/40系显卡&#xff0c;显存至少为8GB&#xff0c;系统配置包括1…

【教学类-19-05】20240214《ABAB式-规律黏贴18格-手工纸15*15CM-一页一种图案,A空,横向、边框》(中班)

背景需求 利用15*15CM手工纸制作AB色块手环&#xff08;手工纸自带色彩&#xff09; 素材准备 代码展示 作者&#xff1a;阿夏 时间&#xff1a;2024年2月14日 名称&#xff1a;正方形数字卡片AB图案 _ 华光彩云_CNKI A的位置有图案 18格 一页一种图案&#xff0c;A空&#…

步步深入 k8s 使用 pv pvc sc 在 nfs 基础上共享存储

博客原文 文章目录 前言集群环境nfs 环境搭建pod 挂载 nfs架构图 pvc 方式挂载 nfs架构图 storageclass 方式动态申请 pv架构图 参考 前言 持久化卷&#xff08;Persistent Volume, PV&#xff09;允许用户将外部存储映射到集群&#xff0c;而持久化卷申请&#xff08;Persist…

open ai api 国内配置代理指南(网上最全)

1.配置须知 open ai 作为这一波AI浪潮的推动者&#xff0c;opne ai的gpt 系列产品在使用和体验上绝对是最强大的&#xff0c;现在对于开发者来说要在代码中访问open ai api是不可用的。所以本文就主要解决这个问题。我们要了解open ai 的网站gpt的访问和api的访问收费是分开来…

K8sGPT 的使用

K8sGPT 介绍 k8sgpt 是一个扫描 Kubernetes 集群、诊断和分类问题的工具。它将 SRE 经验编入其分析器中&#xff0c;并帮助提取最相关的信息&#xff0c;通过人工智能来丰富它。它还可以与 OpenAI、Azure、Cohere、Amazon Bedrock 和本地模型结合使用。 K8sGPT Github 地址 …

波奇学Linux:文件系统

磁盘认识 磁盘被访问的基本单元是扇区-512字节。 磁盘可以看成多个同心圆&#xff0c;每个同心圆叫做磁道&#xff0c;多个扇区组成同心圆。 我们可以把磁盘看做由无数个扇区构成的存储介质。 要把数据存到磁盘&#xff0c;先定位扇区&#xff0c;用哪一个磁头&#xff0c;…

【Javascript】内存泄漏

JavaScript 内存泄露指的是在程序中&#xff0c;不再使用的内存没有被正确释放&#xff0c;导致内存占用持续增加&#xff0c;最终引发性能问题甚至崩溃。 通常哪些操作会造成内存泄漏呢&#xff1f; 未使用 var 声明的全局变量&#xff1a;在 JavaScript 中&#xff0c;如果…

Java与JavaScript的区别与联系

Java是目前编程领域使用非常广泛的编程语言&#xff0c;相较于JavaScript&#xff0c;Java更被人们熟知。很多Java程序员想学门脚本语言&#xff0c;一看JavaScript和Java这么像&#xff0c;很有亲切感&#xff0c;那干脆就学它了&#xff0c;这也间接的帮助了JavaScript的发展…