Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Dockerfile(14) - VOLUME 指令详解

Dockerfile(14) - VOLUME 指令详解

作者头像
小菠萝测试笔记
发布于 2021-11-02 08:19:51
发布于 2021-11-02 08:19:51
7K00
代码可运行
举报
运行总次数:0
代码可运行

VOLUME 一句话总结

  • 作用:创建一个匿名数据卷挂载点
  • 格式:

VOLUME ["/data"]

  • 详解:运行容器时可以从本地主机或其他容器挂载数据卷,一般用来存放数据库和需要保持的数据等

实际栗子

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
VOLUME ["/data"] 
  • 这里的 /data 目录就会在运行时自动挂载为匿名卷,任何向 /data 中写入的信息都不会记录进容器存储层,从而保证了容器存储层的无状态化
  • 容器运行时使用 可以覆盖这个挂载设置【个人测试的时候貌似并不可以,不知道是不是姿势不对。。】

docker run -v mydata:/data

  • 必须使用双引号,不能使用单引号

注意事项

使用基于 Windows 的容器时

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

  • 一个不存在或空的目录
  • C 盘以外的盘
无法通过 VOLUME 挂载主机目录
  • 为了镜像的可移植性,VOLUME 指令不支持指定主机目录参数(像 是可以指定主机目录的)

docker run -v <主机目录>:<容器目录>

  • 如果要指定,还是要通过 docker run -v 来指定主机目录哦
VOLUMN 指令后面的步骤

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

小栗子

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
FROM ubuntu
RUN mkdir /myvol
RUN echo "hello world" > /myvol/greeting
VOLUME /myvol
运行容器
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker run -it -d test

没有用 -v 挂载卷

通过 docker inspect 查看挂载卷
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker inspect 3d2f

可以看到 Volumes 空

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"Volumes": {
    "/myvol": {}
},
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-10-31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Docker 基础知识 - 使用卷(volume)管理应用程序数据
卷(volumes)是 Docker 容器生产和使用持久化数据的首选机制。绑定挂载(bind mounts)依赖于主机的目录结构,卷(volumes)完全由 Docker 管理。卷与绑定挂载相比有几个优势:
用户8803964
2021/07/05
3.8K1
Docker学习笔记之docker volume 容器卷的那些事(一)
接触 docker 的朋友都知道,docker 镜像是以 layer 概念存在的,一层一层的叠加,最终成为我们需要的镜像。但该镜像的每一层都是 ReadOnly 只读的。只有在我们运行容器的时候才会创建读写层。文件系统的隔离使得:
Jetpropelledsnake21
2019/03/19
1.9K0
Docker学习笔记之docker volume 容器卷的那些事(一)
你必须知道的Docker数据卷(Volume)
本篇已加入《.NET Core on K8S学习实践系列文章索引》,可以点击查看更多容器化技术相关系列文章。
Edison Zhou
2019/08/12
2.2K1
Docker 卷到底是个啥玩意?从使用到深入!
每个容器都会被自动分配本地存储。默认情况下,容器全部文件和目录都是用该存储的。非持久存储属于容器的一部分,并且与容器的生命周期一样---容器创建时会创建非持久化存储,同时该存储也会随着容器的删除而删除。
syy
2020/11/09
9160
Docker 卷到底是个啥玩意?从使用到深入!
Dockerfile 指令
1、Dockerfile基本结构 Dockerfile由一行行命令语句组成,并且支持以#开头的注释行。
小手冰凉
2020/08/06
5110
Dockerfile 指令
Docker重学系列之高级数据卷配置
容器数据卷就是目录的挂载,将我们的容器的目录挂载到宿主机上,从而实现打通宿主机和容器之间的文件共享功能;
大忽悠爱学习
2022/05/10
5390
Docker重学系列之高级数据卷配置
Docker核心:深入理解Docker容器数据卷
Docker容器运行时产生的数据,如果不通过docker commit生成新的镜像,使得数据做为镜像的一部分保存下来, 那么当容器删除后,数据自然也就没有了。例如:容器中部署了MYSQL数据库,如果有一天将部署MySQL数据库的容器删除了,存放的数据也就丢失。为了能保存数据在Docker中我们使用卷来实现容器内数据与我们指定的目录文件同步,当某一方数据发生修改时,另一方也随之改变。
百思不得小赵
2022/12/01
1K0
Docker核心:深入理解Docker容器数据卷
一文了解 Docker 数据卷
Docker 镜像是由多个文件系统(只读层)叠加而成。当我们启动一个容器的时候,Docker 会加载只读镜像层并在其上(镜像栈顶部)添加一个读写层。如果运行中的容器修改了现有的一个已经存在的文件,那该文件将会从读写层下面的只读层复制到读写层,该文件的只读版本仍然存在,只是已经被读写层中该文件的副本所隐藏。当删除Docker容器,并通过该镜像重新启动时,之前的更改将会丢失。
用户1278550
2020/11/26
1.8K0
​Docker数据管理
在前面我们详细学习了docker的三大核心概念:镜像、容器和仓库,接下来开始学习如何管理数据。在实际工作中使用docker,往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享,此时必然会使用到容器数据管理的各种操作。
啃饼思录
2020/12/29
1.3K0
​Docker数据管理
Docker 数据管理介绍
默认容器的数据是保存在容器的可读写层,当容器被删除时其上的数据也会丢失,所以为了实现数据的持久性则需要选择一种数据持久技术来保存数据。官方提供了三种存储方式:Volumes、Bind mounts和tmpfs。前面还介绍了:Docker 服务终端 UI 管理工具
民工哥
2021/03/15
7400
Docker 数据管理介绍
docker—Dockerfile指令详解
dockerfile用来定制镜像,我们知道镜像实际上是一层一层的,镜像的定制实际上就是定制每一层所添加的配置和文件。
dogfei
2020/07/31
8000
微服务项目部署--docker
忆愿
2024/07/23
1180
微服务项目部署--docker
Docker--DockerFile与镜像
    Dockerfile是一个用于引导docker镜像生成过程的文件,遵循其特定的语法,我们便可以创建一个自己的镜像。
洋仔聊编程
2019/01/15
9910
Dockerfile文件编写官方文档 原
英文原文链接地址: Engine reference–>Dockerfile reference
拓荒者
2019/03/11
1K0
Docker-Volume
存储卷(volume)是容器上的一个或多个目录,此类目录可绕过联合文件系统,与宿主机上的某个目录绑定(关联)。
懒人的小脑
2019/10/15
6280
Docker-Volume
你必须知道的Docker数据卷(Volume)
使用docker容器的时候,会产生一系列的数据文件,这些数据文件在删除docker容器时是会消失的,但是其中产生的部分内容是希望能够把它给保存起来另作用途的,Docker将应用与运行环境打包成容器发布,程序员希望在运行过程钟产生的部分数据是可以持久化的的,而且容器之间我们希望能够实现数据共享。数据卷是一个可供一个或多个容器使用的特殊目录,它将主机操作系统目录直接映射进容器。在容器中修改的内容可以在宿主机对应的目录下看到,比如:重要日志 、配置文件等。
用户1107783
2024/04/11
2720
你必须知道的Docker数据卷(Volume)
docker之dockerFile
我们可以把每一层修改、安装、构建、操作的命令都写入一个脚本,这个脚本就是Dockerfile; Dockerfile是一个文本文件,其内包含了一条条的指令,每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建;
Qwe7
2022/01/31
6020
[入门] Docker容器数据储存和转移
容器和镜像之间的主要区别是顶部的可写层。所有对容器添加新的或修改现有数据的内容都存储在该可写层中。当容器被删除时,可写层也被删除。底层镜像保持不变。
宣言言言
2019/12/15
2.1K0
Docker实践之03-Dockerfile指令详解
所谓定制镜像,那一定是以一个镜像为基础,在其上进行定制。就像我们之前运行了一个nginx镜像的容器,再进行修改一样,基础镜像是必须指定的。而FROM就是指定基础镜像,因此一个Dockerfile中FROM是必备的指令,并且必须是第一条指令。
编程随笔
2019/06/27
9910
Docker实践之03-Dockerfile指令详解
docker命令实战
docker分层:每一次对原始镜像的修改都会形成新的一层,一层层的叠加,多个不同的容器实例可以共享原始镜像,并在磁盘记录新的修改,即采用写时复制的技术,可以节省磁盘空间
素履coder
2022/08/30
7180
docker命令实战
相关推荐
Docker 基础知识 - 使用卷(volume)管理应用程序数据
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验