• Docker使用数据卷挂载进行数据存储与共享


    一、挂载和数据卷

    Docker 中,挂载(Mounting)和数据卷(Data Volumes)是用于在容器和宿主机之间共享数据的机制。

    • 挂载:将宿主机文件系统中的目录或文件与容器中的目录或文件进行关联的过程。
    • 数据卷:一种特殊的目录,可以绕过容器文件系统,直接与宿主机文件系统进行交互。

    1.1 为什么要使用数据卷?

    • 如果数据都在容器中,那么把容器删除以后,数据也会随之丢失,所以要把数据进行数据持久化。
      如:mysql容器,容器删了,里面的数据就都没了
    • 容器之间可以有一个数据共享的技术,使得容器和宿主机实现数据共享。Docker容器中产生的数据,也会同步到宿主机中。

    1.2 使用数据卷的好处?

    • 如修改数据库的配置文件还要进入容器里面修改,比较麻烦。当挂载以后只需要在本地修改会即可,容器会自动同步。
      ​- 挂载以后会占用磁盘两份存储,即容器内占一份,宿主机占一份。
    • 挂载以后,删除容器以后,宿主机对应的挂载目录不会删除。

    二、挂载数据卷的方式

    可以直接使用docker run -it -v命令来实现数据卷挂载,挂载数据卷命令如下:

    docker run -it -v 宿主机路径:容器内路径
    
    • 1

    其中,宿主机路径为绝对路径,

    容器起来以后挂载以后使用docker inspect 容器id 查看目录是否挂载成功

    docker inspect 容器id
    # 搜索Mounts,这里面就是目录的挂载信息
    #   Source:主机内路径
    #   Destination:docker容器内的路径
    # 如果Mounts这里不展示挂载信息,就说明是挂载失败了
    
    • 1
    • 2
    • 3
    • 4
    • 5

    三、具体样例

    sudo docker run -it -v /home/Project/data:/data test:1.0
    
    • 1

    挂载信息如下:

    • 宿主机路径:/home/Project/data
    • 容器路径:/data
    • 镜像名称:image-test:1.0

    接下来,我们可以查看容器是否正常启动运行起来:

    sudo docker ps -a
    
    • 1

    在这里插入图片描述

    查看容器挂载信息:

    sudo docker inspect 921ea03a66ea
    
    • 1

    搜索Mounts,这里面就是目录的挂载信息,其中:

    • Source:主机内路径
    • Destination:docker容器内的路径
      在这里插入图片描述

    如果Mounts这里不展示挂载信息,就说明是挂载失败了。

    注意:实现数据卷挂载以后,容器停止以后,往宿主机的挂载目录写入对应的数据,此时数据也会同步到容器内对应的目录。

  • 相关阅读:
    登录之后右上角改变 进入登录状态
    总抱怨Mac运行速度又卡又慢?这些方法你用得上
    使用windeployqt.exe打包QT工程,windows系统可执行程序
    Flink的单机部署方式
    适合大学生的笔记软件评测:云笔记.离线笔记、手写笔记、写作软件
    云安全之下一代防火墙介绍
    实验室的服务器和本地pycharm怎么做图传
    【刷题记录⑥】Java从0到1入门|综合练习(二)
    [2020 新春红包题]1
    ros2工作空间
  • 原文地址:https://blog.csdn.net/u012856866/article/details/132672636