Dokcer14_5:Docker Compose volumes解析、Docker Compose volumes目录路径生成规则

news2024/11/29 20:57:15

Dokcer14_5:Docker Compose volumes解析、Docker Compose volumes目录路径生成规则

  • docker-compose volumes语法
  • 语法格式及其三种变体
    • 1.无来源 :匿名挂载
      • 主机系统上的目录路径
    • 2.非路径源:具名挂载(常用)
      • 主机系统上的目录路径
    • 3.路径源:指定路径挂载
  • 总结一下

docker-compose volumes语法

在docker-compose.yml中,volumes键可以出现在两个不同的位置。

version: "3.9"

services:
  database:
    # ...
    volumes: # Nested key. Configures volumes for a particular service.【嵌套的key。为特定服务配置卷】

volumes: # Top-level key. Declares volumes which can be referenced from multiple services.【顶级的key。声明可以从多个服务引用的卷】

语法格式及其三种变体

volumes卷配置有一个简短的语法格式,定义为:

[SOURCE:]TARGET[:MODE]
  • SOURCE 可以是主机系统上的命名卷或(相对或绝对)路径。
  • TARGET 是容器中的绝对路径。
  • MODE 是一个挂载选项,可以是只读或读写。这个参数是可选的。ro(readonly 只读) 或 rw(默认:readwrite 可读可写) 改变读写权限

这种可选性导致您可以使用三种独特的变体来配置容器的卷。 Docker Compose 会识别出使用了哪种类型以及是使用卷还是绑定挂载。

1.无来源 :匿名挂载

例如:-v 容器内路径

# compose版本,向下兼容,我选的最高版本
version: "3.9"

# 定义服务
  service_A:
    # ...
    volumes: # 为特定服务配置卷
    - /var/www/html

当只指定一个目标而没有源时,Docker Compose 将创建一个 anonymous(匿名) 目录并将其作为卷挂载到容器内的目标路径。

主机系统上的目录路径

默认为/var/lib/docker/volumes/<uuid>/_data,其中<uuid>是分配给卷作为其名称的随机 ID。

2.非路径源:具名挂载(常用)

例如:-v 卷名:容器内路径

# compose版本,向下兼容,我选的最高版本
version: "3.9"

# 定义服务
  service_A:
    # ...
    volumes: # 为特定服务配置卷
    - service_A_html:/var/www/html

volumes: # 声明可以从多个服务引用的卷
  # 如果有service_A_html这个卷就会直接使用它,否则会创建一个新的卷并使用
  service_A_html: {}

如果存在源并且它不是路径,则 Docker Compose 假定您指的是命名卷。此卷需要在顶级volumes密钥声明的同一文件中声明。

顶级volumes键始终声明卷,从不绑定挂载。绑定坐骑没有名称,也无法命名。

主机系统上的目录路径

默认为/var/lib/docker/volumes/生成路径名/_data,其中生成路径名 = docker-compose.yml文件所在目录名_docker-compose.yml中volumes中具名挂载指定的命名卷名。
如果是在根目录执行,则生成文件夹名称为default。

使用docker-compose up -d运行docker-compose.yml时,docker-compose.yml所在的目录会加在这个命名中。

在nacos222中建立docker-compose.yml文件并执行
docker-compose.yml中volumes如下
在这里插入图片描述
数据卷如下
在这里插入图片描述
/var/lib/docker/volumes/nacos22_mysql_conf/_data
/var/lib/docker/volumes/nacos22_mysql_data/_data
/var/lib/docker/volumes/nacos22_mysql_init/_data

在根目录执行,生成文件夹名称为default
在这里插入图片描述

[root@VM-0-3-centos /]# docker volume ls
DRIVER    VOLUME NAME
local     default_mysql_conf
local     default_mysql_data
local     default_mysql_init
local     default_nacos_conf
local     default_nacos_log

3.路径源:指定路径挂载

例如:-v /容器外路径:/容器内路径

# compose版本,向下兼容,我选的最高版本
version: "3.9"

# 定义服务
  service_A:
    # ...
    volumes: # 为特定服务配置卷
    - /usr/local/service_A/html:/var/www/html

如果 source 是绝对或相对路径,Docker Compose 会将文件夹绑定到容器中。以.或…开头的相对路径相对于docker-compose.yml的位置。

不鼓励对数据库容器进行绑定挂载,因为这会降低它们的可移植性。绑定挂载特定于主机系统,Docker 不管理它们。官方文档有一个关于卷与绑定安装的部分,更详细地解释了两者之间的差异。

总结一下

Docker Compose 允许您使用简短的语法字符串来配置卷。无论您最终使用的是卷还是绑定挂载,都取决于您使用哪种简短的语法变体。

当您不指定源时,Docker Compose 将创建一个匿名卷。如果 source 不是路径,Docker Compose 将假定 source 是一个命名卷。相对或绝对路径的源被绑定安装到容器中。

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

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

相关文章

mysql idb,frm文件复制恢复

idb是innodb数据文件frm是innodb表结构文件在数据库的data目录下可以看到 data下的目录名就是数据库名&#xff0c;打开该数据库文件夹对于一个表有2个文件&#xff0c;一个以idb结尾&#xff0c;一个以frm结尾直接复制粘贴是不识别的&#xff0c;提示找不到该表解决方法&#…

在线实习项目|Python爬虫助力疫情数据追踪在线实习项目

项目介绍 项目背景&#xff1a;2019-NCOV新型冠状病毒引发的肺炎牵动全国人民的心&#xff0c;本项目希望通过大数据技术为抗击新冠肺炎贡献一份力量。 项目目标&#xff1a;使用PYTHON爬虫技术爬取疫情数据&#xff0c;从不同维度分析数据&#xff0c;并用 MATPLOT…

ubuntu18.04部署DXSLAM,CNN+VSLAM,CPU实时运行

一、下载源代码 打开终端&#xff0c;输入命令克隆仓库 git clone https://github.com/raulmur/DXSLAM.git DXSLAM二、配置环境 We have tested the library in Ubuntu 16.04 and Ubuntu 18.04, but it should be easy to compile in other platforms. C11 or C0x CompilerPa…

虚拟化技术学习笔记8

添加网卡&#xff1a; 1、virt-manager: 选择虚拟机直接添加网卡操作。 2、virsh命令&#xff1a; virsh list virsh domiflist centos7-1 virsh attach-interface centos7-1 \ --type network \ --source default \ --model virtio \ --config 虚拟机查看网卡的添加情况&…

分享65个NET源码,总有一款适合您

NET源码 分享65个NET源码&#xff0c;总有一款适合您 65个NET源码链接&#xff1a;https://pan.baidu.com/s/19yFm_9K_L0xfykMP1hdP5A?pwdn2p7 提取码&#xff1a;n2p7 下面是文件的名字&#xff0c;我放了一些图片&#xff0c;文章里不是所有的图主要是放不下...&#x…

Apache APISIX Ingress 1.6 正式发布!

距离上一个版本 v1.5 发布&#xff0c;已经过了 3 个月&#xff0c;我们很高兴地宣布 Apache APISIX Ingress v1.6 正式发布&#xff01; 在该版本中&#xff0c;共有 29 位贡献者 参与代码提交&#xff0c;其中 17 位是新晋贡献者 &#xff0c;感谢大家的支持和参与&#xff…

nacos的服务注册与调用

此篇博客进行一个简单实例进行展示服务注册和服务的调用&#xff0c;以订单与库存模块为例&#xff0c;其结构图如下&#xff1a; 目 录 1、创建订单模块与库存模块 1.1、编写stock模块 1.2、编写order模块 2、访问地址进行测试 3、总结 1、创建订单模块与库存模块 创建两…

论文投稿指南——中文核心期刊推荐(生物科学 2)

【前言】 &#x1f680; 想发论文怎么办&#xff1f;手把手教你论文如何投稿&#xff01;那么&#xff0c;首先要搞懂投稿目标——论文期刊 &#x1f384; 在期刊论文的分布中&#xff0c;存在一种普遍现象&#xff1a;即对于某一特定的学科或专业来说&#xff0c;少数期刊所含…

.net开发安卓入门-文件操作与配置操作

.net开发安卓入门-文件操作与配置操作文件操作内部存储代码运行效果System.Environment.SpecialFolder枚举类型对应路径表格外部存储&#xff08;代码和效果见上图&#xff09;区别缓存SharedPreferences获取SharedPreferences对象方法列表读取配置信息写配置信息AssetsNlog配置…

【Linux项目自动化构建工具 make/Makefile】

目录 1 背景 2 原理 3 Linux第一个小程序&#xff0d;进度条 3.1 行缓冲区概念 3.2 进度条代码 4 总结 1 背景 在VS中我们知道当我们想要运行程序时直接按f5程序就会自动运行起来&#xff0c;但是在Linux中如果有多个文件好像并不能这样快速进行&#xff0c;那么这时候就…

远程接入(远程办公)解决方案 OpenText™ Exceed™ TurboX (ETX)

OpenText™ Exceed™ TurboX 安全快速的虚拟应用程序和桌面解决方案&#xff0c;适用于混合工作环境&#xff0c;只需低带宽互联网连接即可为办公桌面和图形要求苛刻的软件提供卓越的用户体验。 突出优势&#xff1a; 支持混合云环境使用任何设备随时随地远程工作为用户提供类…

SpringCloud之Zuul路由网关

Zuul路由网关1. Zuul的概念2. Zuul的作用3. 案例1. Zuul的概念 Zuul包含了对请求的路由&#xff08;用来跳转的&#xff09;和过滤两个最主要功能&#xff1a; 其中路由功能负责将外部请求转发到具体的微服务实例上&#xff0c;是实现外部访问统一入口的基础&#xff0c;而过滤…

新年新故事 | Nice 兔 Meet U

各位伙伴新年好哇 比特熊又回来啦【比特熊故事汇2.0】23年开年第一场与大家一起认识“印象中”的不寻常开发人产品创新实践、工作 Mix 生活、反差感2023年1月12日19:00-20:00【比特熊故事汇2.0】新年想见你第一面Nice 兔 Meet U 比特熊兔年特别限定手办2023年兔年来到&#xff…

Ubuntu10.04编译libevent记录

目前有一个旧的程序 基于很老的ubuntu1004的系统做开发 很多新的C11什么的都用不了 之前 很多在ubuntu1804 上编译的so库 直接拿到1004上来用 提示报错 如下 没办法 只能重新在ubuntu 1004 上面编译了 记录下 下载libevent之后解压 直接执行./configure 提示报错如下图 …

kettle简单的ETL抽取同步两个库之间的数据

kettle下载安装 kettle下载&#xff0c;提取码为 1qyd 安装后&#xff0c;把连接数据库需要的jar包放到 data-integration\lib 目录下&#xff0c;到时候kettle才能正确连接数据库。 sqlserver需要的jar包&#xff0c;提取码为 6a6qmysql需要的jar包&#xff0c;提取码为 n8…

深入理解CAS

目录深入理解CASCAS中的引入什么是CAS&#xff1f;CAS原理——Unsafe类CAS优点CAS缺点ABA问题解决ABA问题深入理解CAS CAS中的引入 我们知道我们使用Volatile可以保证可见性&#xff0c;但不保证原子性&#xff0c;那么&#xff0c;如果我们不使用Lock锁和synchronized&#x…

机器学习之XGBoost模型学习

1.划分数据集函数train_test_split以及数据的加载&#xff1a; python机器学习 train_test_split()函数用法解析及示例 划分训练集和测试集 以鸢尾数据为例 入门级讲解_侯小啾的博客-CSDN博客_train_test_split 还有这篇文章&#xff0c;解析的清除&#xff1a; https://com…

2022 年度中国时序数据应用创新奖公布,涉及工业互联网、车联网等多个行业

随着新兴技术的快速发展&#xff0c;越来越多的企业开始以技术的融合创新来推动业务的数字化智能化转型&#xff0c;其中也诞生了很多成功的应用实践案例。2023 年 1 月 9 日&#xff0c;北京涛思数据科技有限公司(TAOS Data) 正式公布「2022 年度中国时序数据应用创新奖」获奖…

【路径规划】基于D星算法实现栅格地图机器人路径规划

目录算法介绍栅格地图代码运行效果算法介绍 A* 在静态路网中非常有效&#xff08;very efficient for static worlds&#xff09;&#xff0c;但不适于在动态路网&#xff0c;环境如权重等不断变化的动态环境下。 D是动态A&#xff08;D-Star,Dynamic A Star&#xff09; 卡内…

nodejs 如何实现自动化部署?

什么是自动化部署 我接触到的自动化部署概念最早是在 Vercel 上提供的&#xff0c;Vercel 可以提供和 github 联动的功能&#xff0c;通过和你自己的 github 上的某个库建立‘链接’&#xff0c;当你 commit 到 github 远程库时就可以自动部署&#xff0c;Vercel 会帮你完成以…