五、容器数据卷(Volume)

这篇具有很好参考价值的文章主要介绍了五、容器数据卷(Volume)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.什么是容器数据卷

先来看看Docker的理念:

  • 将运用与运行的环境打包形成容器运行 ,运行可以伴随着容器,但是我们对数据的要求希望是持久化的

  • 容器之间希望有可能共享数据

Docker容器产生的数据,如果不通过docker commit生成新的镜像,使得数据做为镜像的一部分保存下来, 那么当容器删除后,数据自然也就没有了。

为了能保存数据在docker中我们使用卷。

2.能干嘛

卷就是目录或文件,存在于一个或多个容器中,由docker挂载到容器,但不属于联合文件系统,因此能够绕过Union File System提供一些用于持续存储或共享数据的特性:

卷的设计目的就是数据的持久化,完全独立于容器的生存周期,因此Docker不会在容器删除时删除其挂载的数据卷

特点: 1:数据卷可在容器之间共享或重用数据 2:卷中的更改可以直接生效 3:数据卷中的更改不会包含在镜像的更新中 4:数据卷的生命周期一直持续到没有容器使用它为止

3.作用

  • 容器的持久化

  • 容器间的继承+共享数据

4. 数据卷

4.1 命令添加

  • 语法:docker run -it -v /宿主机绝对路径:/容器内目录 镜像名

    mkdir redis
    cd redis
    docker run -it -v /redis/data:/data --name=c_redis redis:3.2

     

  • 查看数据卷是否挂载成功:docker inspect 容器ID

    例如:

    docker inspect registry
    "Mounts": [
                {
                  "Type": "bind",
                    "Source": "/opt/registry",
                    "Destination": "/var/lib/registry",
                    "Mode": "",
                    "RW": true,
                    "Propagation": "rprivate"
                },
                {
                    "Type": "bind",
                    "Source": "/opt/registry/config.yml",
                    "Destination": "/etc/docker/registry/config.yml",
                    "Mode": "",
                    "RW": true,
                    "Propagation": "rprivate"
                }
            ],

     

 

4.2 容器内的读写规则

rw: 英文全称read write的缩写,表示可读可写(默认规则)

ro: 英文全称read only 的缩写,表示只读

例:

docker run -id -v /redis/data:/data:ro --name=redis1 redis:3.2

 

读写规则只是限制容器内部,宿主机不会被限制

 

4.3 容器卷的继承

语法:

docker run -id --volumes-from 父类 --name='Container2' 镜像名字或容器ID:版本号

docker run -id --volumes-from redis1 --name=redis2 redis:3.2

 

课堂演示:

(1) 在容器redis1中创建一个test1.txt 文件,分别查看宿主机/redis/data 目录与容器redis2中的 /data目录

(2) 在容器redis2中创建一个test2.txt 文件,分别查看宿主机/redis/data 目录与容器redis1中的 /data目录

(3) 宿主机/redis/data 目录创建文件test_data.txt,分别在redis1,redis2 容器的/data 目录中查看情况

(4) 将redis1 容器停止,在宿主机中创建一个test_stop.txt文件,然后再将redis1容器开启,分别查看情况

 

4.4 Dockerfile添加

可在Dockerfile中使用VOLUME指令 来给镜像添加一个或多个数据卷

VOLUME["/dataVolumeContainer","/dataVolumeContainer2","/dataVolumeContainer3"]

 

说明:

出于可移植和分享的考虑,用-v 主机目录:容器目录这种方法不能够直接在Dockerfile中实现。 由于宿主机目录是依赖于特定宿主机的,并不能够保证在所有的宿主机上都存在这样的特定目录。文章来源地址https://www.toymoban.com/news/detail-747604.html

 
配套视频链接:全网首发java/.net双案例Docker精品课程,Docker 进阶教程(双语言双案例助力教学)-已完结_哔哩哔哩_bilibili

到了这里,关于五、容器数据卷(Volume)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • docker 的volume 是个什么概念

    在Docker中,Volume(卷)是一种用于在容器和主机之间共享和持久化数据的机制。Volumes允许在容器之间或容器与主机之间共享文件,并且数据在容器的生命周期中是持久的。这是因为容器的文件系统是临时的,容器被删除后文件系统中的数据也会被清除,而Volume提供了一种解决

    2024年02月22日
    浏览(40)
  • 【数据结构】----先来聊聊【排序】(先导片)

    作为一名对技术充满热情的学习者,我一直以来都深刻地体会到知识的广度和深度。在这个不断演变的数字时代,我远非专家,而是一位不断追求进步的旅行者。通过这篇博客,我想分享我在某个领域的学习经验,与大家共同探讨、共同成长。请大家以开放的心态阅读,相信

    2024年02月22日
    浏览(38)
  • 这是什么代码帮我看看

    data=\\\'www.\\\' +\\\'mingrisoft\\\'+\\\'.com\\\' train1=\\\'www.\\\'+str(12306)+ \\\'.com\\\' train2=\\\'www.\\\'+\\\'12306\\\'+\\\'.com\\\' print(data ) print(train1) print(train2) name=input(\\\'姓名:\\\') phone=input(\\\'电话:\\\') university=input(\\\'学校:\\\') data=name,phone,university print(data ) print(\\\' \\\'.join(data) ) print(name,phone,university) print (\\\'mingrisoft\\\'\\\'.com\\\') print (\\\'mingrisoft\\\'   \\\'.c

    2024年02月16日
    浏览(28)
  • CSDN为什么会发展社区?看看官方怎么说

    哈喽,大家好,我是几何心凉,这是一份全新的专栏,唯一得到CSDN王总的授权,来对于我们每周四的绿萝时间 ——【直达CSDN】直播内容进行总结概括,让大家能够省去看直播回放的时间也能够了解直播内容和官方的最新动态,希望大家给予凉哥最大的支持,如有未授权用户

    2024年02月17日
    浏览(47)
  • Docker数据卷(Volume)

    一、数据卷概念 数据卷是宿主机中的一个 目录或者文件 ,当容器目录和数据卷目录绑定后,对方的修改会立即同步。 一个数据卷可以被多个容器同时挂载,一个容器也可以被挂载多个数据卷。 简单来说,数据卷本质其实是共享文件夹,是 宿主机与容器之间 数据共享的桥梁

    2024年02月08日
    浏览(38)
  • Dockers数据卷Volume

    在 Docker 中,数据卷(Volume)是一种持久化存储数据的方法,可以在容器和主机之间共享数据,并且可以保持数据的持久性。使用数据卷可以方便地将数据从一个容器传递到另一个容器,也可以使得容器中的数据在容器删除后仍然保留。 以下是一个详细的示例代码,展示如何

    2024年04月28日
    浏览(32)
  • 我问 AI 大模型1+1=2,看看它能说些什么?

    1.1 算术的基础 算术是数学的一个基本分支,是人类最早掌握和使用的数学知识。从人类文明的开端,我们就开始计数和进行简单的加减运算。算术的基本运算包括加法、减法、乘法和除法,它们构成了数学的基石。 1.2 加法运算的重要性 在这些基本运算中,加法是最基础和最常用

    2024年03月24日
    浏览(35)
  • 一起来看看元宇宙为什么有必要与IPFS进行精确组合?

    基本上,元宇宙的所有产品都将是NFT,但这将导致越来越多的NFT数据,这也是元宇宙寻求突破的地方。 重要的是,数据必须永久存储,数据不能被操作以确保唯一性。也许你已经猜到了,在区块链中有满足这些要求的,即IPFS分布式存储。 Filecoin是一个激励层,运行在IPFS和区

    2024年02月10日
    浏览(68)
  • 【DevOps系列】Docker数据卷(volume)详解

    Docker的镜像是由多个只读的文件系统叠加在一起形成。启动一个容器的时候,docker会加载只读层并在只读层的上面(栈顶)增加一个读写层。如果需要修改只读层的文件,那么这个文件层需要复制到读写层。该文件的只读版本还在,只是被上面写层的文件副本隐藏。当删除

    2024年02月07日
    浏览(39)
  • docker——数据卷(volume)概念及使用案例

    Docker的镜像是有⼀系列的只读层组合⽽来,当启动⼀个容器时,Docker加载镜像的所有只读层,并在最上层加⼊⼀个读写层。这个设计使得Docker可以提⾼镜像构建、存储和分发的效率,节省了时间和存储空间,然⽽也存在⼀些问题: 容器中的⽂件在宿主机上存在形式复杂,不能

    2024年02月03日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包