• Docker容器的数据卷


    数据卷的概念及作用

    思考:

    1. Docker容器删除后,在容器中产生的数据也会随之销毁吗?
      答案是肯定的,容器删除后,其中的数据也会一并删除。那这样的话存储在容器中的数据岂不是很不安全,该如何解决这个问题呢
    2. Docker容器和外部机器可以直接交换文件吗?
      答案是不可以。那这样的话数据传输就很不方便了,该如何解决这个问题呢
    3. 容器之间想要进行数据交互,该如何做呢?

    数据卷:

    • 数据卷是宿主机中的一个目录
    • 容器里面也弄个目录,将容器中的目录与宿主机中的目录通过挂载的方式绑定起来,此时宿主机中的目录就可称之为数据卷
    • 当容器目录与数据卷目录绑定后,一方产生了改动,另一方会立即同步

    数据卷解决了思考中的问题:

    1. 容器删除了,其中的数据也一并删除了,但宿主机中的相同数据并不会删除,因此数据得到了保留
    2. Docker容器与外部机器的交互可以转变成宿主机与外部机器的交互,这就方便多了
    3. 一个数据卷可以被多个容器同时挂载,这就解决了容器之间的数据交互问题;同样地,一个容器也可以被挂载多个数据卷

    数据卷的作用:

    • 容器数据的持久化存储
    • 外部机器与容器之间的间接通信
    • 容器之间的数据交互

    配置数据卷

    创建并启动容器时,使用-v参数来设置数据卷

    docker run ... -v 宿主机目录:容器内目录 ...
    
    注意事项:
    	1.目录必须是绝对路径
    	2.如果目录不存在,会自动创建
    	3.可以挂载多个数据卷
    	
    docker run -it --name=c1 -v /root/data:/root/data_container ubuntu:18.04 /bin/bash
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    配置数据卷容器

    多容器进行数据交换

    • 方式一:多个容器挂载同一个数据卷
    • 方式二:数据卷容器

    创建并启动c3数据卷容器,使用-v参数来设置数据卷

    docker run -it --name=c3 -v /volume ubuntu:18.04 /bin/bash
    
    • 1

    创建并启动c1、c2容器,使用–volumes-from参数来设置数据卷

    docker run -it --name=c1 --volumes-from c3 ubuntu:18.04 /bin/bash
    docker run -it --name=c2 --volumes-from c3 ubuntu:18.04 /bin/bash
    
    • 1
    • 2

    数据卷容器:创建一个容器,挂载一个目录,让其他容器继承自该容器(–volume-from)

  • 相关阅读:
    工作任务“杂乱难”?这个小工具帮你轻松搞定!
    【图论——第八讲】Kruskal算法求最小生成树问题
    S32K1xx 微控制器的硬件设计指南
    虚拟机桥接模式无法联网
    T-SQL——将字符串转为单列
    【笔试题】【day29】
    【唯美情侣爱情表白纪念HTML单页】
    GPT引发智能AI时代潮流
    vue3 的 ref、isRef、toRef、toRefs、toRaw 详细介绍
    Unity的IPreprocessComputeShaders:深入解析与实用案例
  • 原文地址:https://blog.csdn.net/weixin_48158964/article/details/134029871