Docker Volume 的经常用法区别
对于使用 NFS 的 Docker 数据卷,配置示例应当类似于这样:
version: '3'
services:
my_service:
image: your_image
volumes:
# 挂载命名的数据卷到容器内的路径(详细模式)
- type: volume
source: my_nfs_volume
target: /path/in/container my_service1:
image: your_image1
volumes:
# 将宿主机上的目录(或文件)绑定并挂载到容器内部(详细模式)
- type: bind
source: ./host/path
target: /container/path my_service2:
image: your_image2
volumes:
# 挂载命名的数据卷到容器内的路径(简洁写法)
- my_local_valume:/path/in/container2 volumes: # 定义和配置数据卷部分
my_nfs_volume: # 命名的数据卷
driver: "nfsv4" # 假设有一个名为 nfsv4 的 NFS 驱动插件可用
driver_opts:
server: nfs-server-ip-address
share: /path/to/nfs/share my_local_valume: # 定义本地数据卷部分
driver: local # 默认情况下,无需指定driver为local,因为这是默认的数据卷驱动 # 如果需要指定额外的选项,比如设置volume的位置,可以使用以下语法(但请注意,Docker Compose不直接支持设置local volume的具体路径)
# driver_opts:
# type: none
# o: bind
# device: /host/path/to/volume
# 上述配置中,my_local_volume 是一个自动创建的本地数据卷。
# 如果没有提供具体的driver_opts来绑定宿主机上的特定路径,Docker将会在宿主机的内部位置自动创建并管理这个数据卷。
----------------------------------------------------------------------------------------------------
注意:
在 Docker Compose 中,对于本地数据卷,默认情况下你不需要明确指定 driver: local,因为它已经是默认的数据卷驱动。
Docker Compose 直接创建的本地数据卷通常不会让你自定义其在宿主机上的具体存储路径。
它会由 Docker 引擎自动管理,并存储在宿主机的一个特殊目录下。
如果你确实想要将宿主机上的某个特定路径与容器内的数据卷进行绑定,那么你应该在服务的 volumes 部分直接使用宿主机路径挂载的方式,而不是在 volumes 下面定义一个单独的本地数据卷,示例如下:
services:
my_service:
image: your_image
volumes:
- ./host/path:/path/in/container # 将宿主机上的路径直接映射到容器内
这种方式实际上是利用了 Docker 的 bind mount 而不是数据卷功能,但它同样实现了数据持久化的目的。
Link:Docker Volume
Docker Volume 的经常用法区别的更多相关文章
- docker attach 和 exec 用法区别
attach 用法 $ sudo docker attach 665b4a1e17b6 #by IDor$ sudo docker attach loving_heisenberg #by Name$ ...
- 理解Docker(1):Docker 安装和基础用法
本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...
- Docker 安装和基础用法
理解Docker(1):Docker 安装和基础用法 本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 ...
- Docker学习笔记之docker volume 容器卷的那些事(一)
预览目录 volume 方式 相关用例 使用方式 使用 volume driver bind mount 方式 相关用例 使用方式 配置selinux标签 配置macOS的安装一致性 tmpfs 方式 ...
- Docker volume speed up npm install
上一节决定在Jenkins中采用Docker作为构建环境,于是就可以为所欲为的使用各种node版本编译我们的项目.解决了版本切换问题.然而,Docker设计的目的就是纯净的执行环境,因此每次运行doc ...
- Docker容器和镜像的区别
docker容器和镜像区别 转自 https://www.cnblogs.com/bethal/p/5942369.html 这篇文章希望能够帮助读者深入理解Docker的命令,还有容器(conta ...
- 关于使用docker volume挂载的注意事项
Content 在用Docker进行持久化的存储的时候,有两种方式: 使用数据卷(volume) -v 容器绝对路径 或者 -v 已经创建的volume名称:容器绝对路径 2. 使用挂载点(共享宿主目 ...
- order_by_、group_by_、having的用法区别
写于 2012-11-20 22:14 doc文档上. Having 这个是用在聚合函数的用法.当我们在用聚合函数的时候,一般都要用到GROUP BY 先进行分组,然后再进行聚合函数的运算.运算完后 ...
- html中的alt和title用法区别
html中的alt和title用法区别 首先明确一下概念,alt是html标签的属性,而title既是html标签,又是html属性.title标签这个不用多说,网页的标题就是写在<title& ...
- 转 SQL Union和SQL Union All两者用法区别效率以及与order by 和 group by配合问题
SQL Union和SQL Union All两者用法区别效率以及与order by 和 group by配合问题 SQL Union和SQL Union All用法 SQL UNION 操作符 UN ...
随机推荐
- find第二天
find第二天 1.找出/tmp目录下,属主不是root,且文件名不以f开头的文件 find /tmp ! -user root -a ! -name 'f*' 或者 find /tmp ! -use ...
- ElasticSearch8 - SpringBoot整合ElasticSearch
前言 springboot 整合 ES 有两种方案,ES 官方提供的 Elasticsearch Java API Client 和 spring 提供的 [Spring Data Elasticse ...
- vscode中Vetur插件关闭组件自动导入路径
vscode配置项中加入 "vetur.completion.autoImport": false, 或者,将图中4处勾去掉即可
- Oracle日期加减
1.直接加减数字 SELECT SYSDATE "当前时间", SYSDATE + 1 "加一天", SYSDATE + (1 / 24) "加一小时 ...
- TCL之基本语法1
TCL之基本语法1 1:set and puts set就是变量声明,这个声明在需要使用的指令下会自动执行,不会出现没有声明的错误.但是对于puts这类定向访问的是不能没有声明的.这里简单理解TCL ...
- KingbaseES大数据量分区表添加主键与索引
KingbaseES大数据量分区表添加主键与索引 一.环境信息: 系统信息: $ cat /etc/centos-release CentOS Linux release 8.2.2004 (Core ...
- #背包#洛谷 4026 [SHOI2008]循环的债务
题目 分析 设\(dp[t][n][m]\)表示前\(t\)种钞票\(\text{Alice,Bob}\)分别拥有\(n,m\)元所需最小交换钞票数, 枚举\(\text{Alice,Bob}\)最后 ...
- XML 简介及用法详解
XML 是一种用于存储和传输数据的与软件和硬件无关的工具. 什么是XML? XML代表eXtensible Markup Language(可扩展标记语言).XML是一种与HTML非常相似的标记语言. ...
- C# Dev GridControl小结
1. 如何解决单击记录整行选中的问题 View->OptionsBehavior->EditorShowMode 设置为:Click 2. 如何新增一条记录 (1).gridView.Ad ...
- openGauss3.1.0企业版HA环境部署测试
前言 openGauss 是华为开源的一款高性能关系型数据库,这两年感觉 pg 系的数据库在国内慢慢火起来了,pg 的操作还是跟 mysql 和 oracle 略有差距,还得慢慢学,先从部署开始吧.对 ...