Dockerfile(14) - VOLUME 指令详解

简介: Dockerfile(14) - VOLUME 指令详解

VOLUME 一句话总结


  • 作用:创建一个匿名数据卷挂载点
  • 格式:VOLUME ["/data"]
  • 详解:运行容器时可以从本地主机或其他容器挂载数据卷,一般用来存放数据库和需要保持的数据等

 

实际栗子


VOLUME ["/data"]

  • 这里的 /data 目录就会在运行时自动挂载为匿名卷,任何向 /data 中写入的信息都不会记录进容器存储层,从而保证了容器存储层的无状态化
  • 容器运行时使用 docker run -v mydata:/data 可以覆盖这个挂载设置【个人测试的时候貌似并不可以,不知道是不是姿势不对。。】
  • 必须使用双引号,不能使用单引号

 

注意事项


使用基于 Windows 的容器时

挂载的目录必须是以下之一:

  • 一个不存在或空的目录
  • C 盘以外的盘

 

无法通过 VOLUME 挂载主机目录

  • 为了镜像的可移植性,VOLUME 指令不支持指定主机目录参数(像  docker run -v <主机目录>:<容器目录>  是可以指定主机目录的)
  • 如果要指定,还是要通过 docker run -v 来指定主机目录哦

 

VOLUMN 指令后面的步骤

如果在 VOLUMN 指令后面的构建步骤更改了卷中的数据,这些数据会被丢弃

 

小栗子


FROM ubuntu

RUN mkdir /myvol

RUN echo "hello world" > /myvol/greeting

VOLUME /myvol

 

运行容器

docker run -it -d test

没有用 -v 挂载卷

 

通过 docker inspect 查看挂载卷

docker inspect 3d2f

可以看到 Volumes 空

"Volumes": {

   "/myvol": {}

},

 

相关文章
|
数据安全/隐私保护 Docker 容器
Dockerfile(15) - ARG 指令详解
Dockerfile(15) - ARG 指令详解
1737 0
|
前端开发 JavaScript iOS开发
精选11款炫酷的前端动画特效分享(附在线演示)
分享11款非常不错炫酷的前端特效源码 其中包含css动画特效、js原生特效、svg特效等 下面我会给出特效样式图或演示效果图 但你也可以点击在线预览查看源码的最终展示效果及下载源码资源
|
Kubernetes Ubuntu 应用服务中间件
在Ubuntu22.04 LTS上搭建Kubernetes集群
在Ubuntu22.04.4上安装Kubernetes v1.28.7,步骤超详细
5968 3
在Ubuntu22.04 LTS上搭建Kubernetes集群
|
传感器 数据采集 物联网
MQTT 的 QoS 等级:QoS 0、QoS 1、QoS 2
MQTT 的 QoS 等级:QoS 0、QoS 1、QoS 2
4706 0
|
Kubernetes 负载均衡 应用服务中间件
【K8S系列】第十三讲:Ingress详解
【K8S系列】第十三讲:Ingress详解
8093 0
|
移动开发 缓存 JavaScript
2021最新阿里代码规范(前端篇)
2021最新阿里代码规范(前端篇)
56622 11
2021最新阿里代码规范(前端篇)
|
11月前
|
Ubuntu Linux
Linux 各发行版安装 ping 命令指南
如何在不同 Linux 发行版(Ubuntu/Debian、CentOS/RHEL/Fedora、Arch Linux、openSUSE、Alpine Linux)上安装 `ping` 命令,详细列出各发行版的安装步骤和验证方法,帮助系统管理员和网络工程师快速排查网络问题。
1286 20
|
Java 开发者 Spring
【SpringBoot 异步魔法】@Async 注解:揭秘 SpringBoot 中异步方法的终极奥秘!
【8月更文挑战第25天】异步编程对于提升软件应用的性能至关重要,尤其是在高并发环境下。Spring Boot 通过 `@Async` 注解简化了异步方法的实现。本文详细介绍了 `@Async` 的基本用法及配置步骤,并提供了示例代码展示如何在 Spring Boot 项目中创建与管理异步任务,包括自定义线程池、使用 `CompletableFuture` 处理结果及异常情况,帮助开发者更好地理解和运用这一关键特性。
1903 1
|
JSON Java Shell
Dockerfile中RUN、CMD、ENTRYPOINT、SHELL命令的区别
理解这些指令的差异和应用场景,有助于构建高效、灵活且易于管理的Docker镜像。在实际应用中,根据需要选择合适的指令,可以有效地控制镜像构建和容器运行的行为。
698 0
|
人工智能 架构师 搜索推荐
AI Agent【项目实战】:MetaGPT遇上元编程,重塑复杂多智能体协作的边界
【7月更文挑战第4天】AI Agent【项目实战】:MetaGPT遇上元编程,重塑复杂多智能体协作的边界
AI Agent【项目实战】:MetaGPT遇上元编程,重塑复杂多智能体协作的边界