zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    学习进度表
    数据结构思维导图
    数据结构笔记(树与二叉树)
    图片链接缝隙(a于img) mn
    如何用div实现(滑动条)侧边导航栏 mn
    去除Linux文件中的注释行和空行 mn
    高度塌陷 mn
    初入HTML5
    bcp命令详解转载
    windows 下andriod 开发环境的搭建
  • 原文地址:https://www.cnblogs.com/HubuSugar/p/14400942.html
Copyright © 2011-2022 走看看