通过dockerfile创建挂载点

上面介绍的通过docker run命令的-v标识创建的挂载点只能对创建的容器有效。

通过dockerfile的 VOLUME 指令可以在镜像中创建挂载点,这样只要通过该镜像创建的容器都有了挂载点。

还有一个区别是,通过 VOLUME 指令创建的挂载点,无法指定主机上对应的目录,是自动生成的。

#test
FROM ubuntu
MAINTAINER hello1
VOLUME ["/data1","/data2"]

上面的dockfile文件通过VOLUME指令指定了两个挂载点 /data1 和 /data2.

我们通过docker inspect 查看通过该dockerfile创建的镜像生成的容器,可以看到如下信息

    "Mounts": [{"Name": "d411f6b8f17f4418629d4e5a1ab69679dee369b39e13bb68bed77aa4a0d12d21","Source": "/var/lib/docker/volumes/d411f6b8f17f4418629d4e5a1ab69679dee369b39e13bb68bed77aa4a0d12d21/_data","Destination": "/data1","Driver": "local","Mode": "","RW": true},{"Name": "6d3badcf47c4ac5955deda6f6ae56f4aaf1037a871275f46220c14ebd762fc36","Source": "/var/lib/docker/volumes/6d3badcf47c4ac5955deda6f6ae56f4aaf1037a871275f46220c14ebd762fc36/_data","Destination": "/data2","Driver": "local","Mode": "","RW": true}],

可以看到两个挂载点的信息。

三、容器共享卷(挂载点)

docker run --name test1 -it myimage /bin/bash

上面命令中的 myimage是用前面的dockerfile文件构建的镜像。 这样容器test1就有了 /data1 和 /data2两个挂载点。

下面我们创建另一个容器可以和test1共享 /data1 和 /data2卷 ,这是在 docker run中使用 --volumes-from标记,如:

可以是来源不同镜像,如:

docker run --name test2 -it --volumes-from test1  ubuntu  /bin/bash

也可以是同一镜像,如:

docker run --name test3 -it --volumes-from test1  myimage  /bin/bash

上面的三个容器 test1 , test2 , test3 均有 /data1 和 /data2 两个目录,且目录中内容是共享的,任何一个容器修改了内容,别的容器都能获取到。

通过dockerfile创建挂载点相关推荐

  1. docker学习笔记(四)——Dockerfile创建自定义镜像

    用Dockerfile创建docker,注意下,建议在空文件夹下创建 本篇我们将完成: 1.用Dockerfile创建docker 2.端口映射 3.卷挂载,即docker目录挂载到宿主机 1.用Do ...

  2. docker镜像了解(建立私有仓库,基于已有镜像创建,Docker的数据管理) 基于Dockerfile创建,基于本地模板创建,端口映射,容器互联)

    文章目录 docker镜像 制作镜像的过程 基于已有镜像创建 基于本地模板创建 基于Dockerfile创建 Dockerfile操作指令 Docker的数据管理 数据卷 docker的网络通信 容器 ...

  3. 通过Dockerfile创建docker镜像

    创建镜像三种方法 Docker镜像创建方法有三种,分别为基于已有镜像创建.基于本地模板创建以及基于Dockerfile创建. 通过Dockerfile创建镜像 这里主要记录下基于Dockerfile创 ...

  4. Dockerfile创建镜像

    Dockerfile创建镜像 Dockerfile常见的命令 Dockerfile就是用来构建docker镜像的源码,是一些命令的组合,编写dockerfile可以定制化docker image. 镜 ...

  5. 模板会有多层镜像_创建镜像的方法有三种:基于已有镜像的容器创建、基于本地模板导入、基于Dockerfile创建,本博文讲解前两种。基于已有镜像的容器创建该方法是使用docke...

    创建镜像的方法有三种:基于已有镜像的容器创建.基于本地模板导入.基于Dockerfile创建,本博文讲解前两种. 基于已有镜像的容器创建 该方法是使用docker commit命令,其命令格式为: d ...

  6. 【系列8】使用Dockerfile创建带MongoDB的Centos Docker镜像

    MongoDB是一款可扩展.高性能的开源文档(Document-Oriented)数据库.它采用C++开发,支持复杂的数据类型和强大的查询语言,提供了关系数据库的绝大部分功能.MongoDB由于其高性 ...

  7. kubernetes 用dockerfile 创建jenkins容器

    dockerfile 创建jenkins 下载链接 :Docker Hub jenkins_for_Centos版本 ##这里用的是jenkinsforCentos版本 [root@hy-202 ~] ...

  8. 创建挂载点+vue的本文指令使用

    需求: <1>. 创建挂载点 <2>. 实例化vue对象,让其在挂载点中生效 <3>. 在实例中定义多个数据,并且在挂载点中展示 <!DOCTYPE html ...

  9. 创建挂载squashfs

    创建挂载squashfs 创建 mksquashfs /some/dir dir.sqsh 挂载 mount dir.sqsh /mnt/dir -t squashfs -o loop 设备上创建 m ...

最新文章

  1. SpringDataJpa框架单元测试实现增删改查
  2. mysql 函数依赖关系_MySQL关系规范化
  3. vue 项目引用static目录资源_vuejs-templates静态资源目录src/assets、和static/区别
  4. 为什么需要两个Survivor区?
  5. 程序人生:这5个程序员,改变了世界,你都认识吗!
  6. android判断是否json格式,android – 检查JSON中是否存在subObject
  7. 力士乐电源模块故障代码_奥的斯电梯OVF402,OVF404,OVF406驱动器故障代码
  8. UCI数据集+机器学习+十折交叉验证
  9. 双栏显示的时候三线格的线太长怎么办?
  10. fme坐标转换器_FME坐标点提取
  11. 解决azkaban使用腾讯企业邮箱发邮件失败问题
  12. 计算机高程知识点,测量学复习基本知识点(全).doc
  13. Mybatis自定义轻量级分页组件(易集成,易拓展)
  14. 蓝鲸智云统一开发环境搭建指南
  15. 从源码搭建MPlayer-1.3.0播放器
  16. 【雅思】【绿宝书错词本】List25~36
  17. wordpress大前端主题DUX7.1免授权
  18. 刚刚,阿里重磅发布机器学习平台PAI 3.0!
  19. Java三齐王乱点兵算法,【ACM】韩信点兵算法
  20. mybatis报错Unsatisfied dependency expressed through field ‘baseMapper‘解决方案

热门文章

  1. 必看!今年端午高速不免费,这份出行指南请收下
  2. SVN小乌龟 merge分支到主干时,代码冲突的解决思路
  3. python中round函数使用
  4. 神奇的“狼抓兔子”(The absolute security Place)
  5. 2023年北京.NET线下技术沙龙来了!大咖分享,还有精品好礼等你
  6. java json格式美化
  7. Numpy transpose函数理解
  8. nrf52832使用nrfconnect通过安卓和苹果(IOS)手机升级固件
  9. 对战五子棋——网页版
  10. 设计一个日期类(CDate),属性为年、月、日,成员函数为设置当前日期setDate(…)、当前日期加一天increaseDate()和显示日期showDate()