• docker--容器数据持久化(容器卷)


    一、容器启动时将数据持久化到宿主机上,实现容器与容器或者容器与宿主机之间数据共享

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

    例如:docker  run -it  -v  /myDataVolume:/myContainerVolume  centos     # 主机和容器的数据双向绑定

    结果:

    结果验证:

    1.使用docker inspect 容器id可以查看到宿主机的myDataVolume和容器的dataVolumeContainer数据卷绑定了,权限为”RW”,如下图

    2.在宿主机上的myDataVolume目录进行数据操作,发现容器上的数据也跟着进行了变化

     3.关闭容器,然后在宿主机的/myDataVolume目录下新建host02文件,然后重启容器依然可以看到容器上同步了host02文件

     二、容器数据持久化到宿主机(带有权限),只允许宿主机单向改动

    例如:docker run -it -v /myDataVolume:/dataVolumeContainer:ro  --name mycentos centos:latest

    加了ro后缀后,只能编辑宿主机上 myDataVolume目录下的文件,容器上dataVolumeContainer目录下的文件不允许操作

    三、使用DockerFile实现容器上的数据持久化到宿主机

     通过DockerFile中的VOLUME指令自定义一个带有两个容器卷的镜像

    例如:

    # 容器卷的持久化脚本
    FROM centos
    VOLUME ["dataVolumeContainer1","dataVolumeContainer2"]
    CMD echo "finished,-------success"
    CMD /bin/bash
    docker build -f Dockerfile01 -t hubusugar/centos:1.2 .

    注意:末尾还有个.号

    -f 指定文件的路径 

    -t 指定镜像名称和tag

    然后通过docker run 命令运行生成的容器时候就可以启动一个带有两个数据卷dataVolumeContainer1和dataVolumeContainer2的容器

    结果验证:

     对应的宿主机的目录为:

    /var/lib/docker/volumes/e689fe7556f454e1cbf1e055410bcc796c98cf2955ea7a8d44e226a293c9caf8/_data

  • 相关阅读:
    [时间篇TIME]Learn with whole Life 一生的学习
    使用IIS内置压缩功能,增加网站访问速度
    CSS中A链接样式的 "爱恨"原则
    爱情六十三课,定个开放日
    给爱子的信
    在IE中使用高级CSS3选择器
    爱情六十七课,下台阶的学问
    网上常用免费WebServices集合
    美国狗证上的10句话
    爱情六十五课,情爱无智者
  • 原文地址:https://www.cnblogs.com/HubuSugar/p/14400942.html
Copyright © 2020-2023  润新知