zoukankan      html  css  js  c++  java
  • Docker持久化存储与数据共享

    一.Docker持久化数据的方案

        基于本地文件系统的Volume:可以在执行docker create或docker run时,通过-v参数将主机的目录作为容器的数据卷。这部分功能便是基于本地文件系统的volume管理。
        基于plugin的Volume:支持第三方的存储方案,比如NAS,aws

    1.Volume的类型

        受管理的data Volume,由docker后台自动创建
        绑定挂载的Volume,具体挂载位置可以由用户指定

    二.数据持久化:Data Volume
    1.操作流程

        注意:mysql的Dockerfile中由VOLUME ["/var/lib/mysql"]指定了持久化的路径,此路径是要被持久化的路径,默认volume的名称为local
        执行 sudo docker run -d -v mysql:/var/lib/mysql --name mysql1 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql启用一个mysql的image容器,其中-v后跟的mysql表示volume别名,冒号后面的路径为volume本地存储的地址
        查看 sudo docker volume ls查看docker的volume,会发现自动生成了一个volume
        通过 sudo docker volume inspect volume的NAME值查看对应volume的详情信息
        如果希望删除volume,则可以使用sudo docker volume rm volumeNAME
    在这里向大家推荐一个资料分享群:894951460,里面有大数据离线处理、数据实时处理、Hadoop 、Spark、推荐系统算法等内容的资料分享,如果有兴趣的朋友可以加入领取。
    2.恢复volume数据

        上述操作后会将数据存储到/var/lib/mysql中,我们可以对container中的mysql数据进行增删改查操作
        通过 sudo docker rm mysql1移除container
        此时查看/var/lib/mysql路径仍然存储volume
        我们可以使用 sudo docker run -d -v mysql:/var/lib/mysql --name mysql1 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql再次开启一个container,此时的volume会延用之前的数据实现数据的恢复

    三.数据持久化:Bind Mounting
    1.与Data Volume的区别

        Data Volume需要在Dockerfile中定义要创建的volume
        Bind Mounting是在运行时指定本地目录与容器中目录的一一对应关系即可docker run -v /home/aaa:/root/aaa

  • 相关阅读:
    A1052. Linked List Sorting (25)
    A1032. Sharing (25)
    A1022. Digital Library (30)
    A1071. Speech Patterns (25)
    A1054. The Dominant Color (20)
    A1060. Are They Equal (25)
    A1063. Set Similarity (25)
    电子码表
    矩阵键盘
    对象追踪、临时对象追踪、绝对坐标与相对坐标
  • 原文地址:https://www.cnblogs.com/ourtest/p/10234739.html
Copyright © 2011-2022 走看看