zoukankan      html  css  js  c++  java
  • 5 docker-容器数据管理

    一 容器内添加数据卷--直接用命令

    1 不带权限挂载目录

    docker run -it -v /宿主机绝对路径目录:/容器内目录 镜像名字
    这两个目录不用提前建立,会自动生成,然后在宿主机或者容器里面对应的目录写入文件,看是否会自动同步(两者都可读可写)
    例子:

    docker run -itd -v /data/:/data centos bash 
    

    2 带权限的挂载目录

    docker run -it -v /hostdir:/voludir:ro centos
    容器里面没有写入权限,只有宿主机才可以写入
    

    二 容器内添加数据卷--用dockerfile添加

    1 用volume参数来添加数据卷,可以一次添加多个,我这里添加了两个

    FROM centos
    
    VOLUME ["/dataVolumeContainer1","/dataVolumeContainer2"]
    
    CMD echo "finished,--------success1"
    
    CMD /bin/bash
    
    

    2 然后build,出现下面信息表示成功

    docker build -f /mydocker/Dockerfile -t hnf/centos .
    
    Sending build context to Docker daemon  2.048kB
    Step 1/4 : FROM centos
     ---> 470671670cac
    Step 2/4 : VOLUME ["/dataVolumeContainer1","/dataVolumeContainer2"]
     ---> [Warning] IPv4 forwarding is disabled. Networking will not work.
     ---> Running in 1174d3eb47d8
    Removing intermediate container 1174d3eb47d8
     ---> c7014cc56c0a
    Step 3/4 : CMD echo "finished,--------success1"
     ---> [Warning] IPv4 forwarding is disabled. Networking will not work.
     ---> Running in a5140e327aff
    Removing intermediate container a5140e327aff
     ---> c32098c138eb
    Step 4/4 : CMD /bin/bash
     ---> [Warning] IPv4 forwarding is disabled. Networking will not work.
     ---> Running in 2254626cd4a9
    Removing intermediate container 2254626cd4a9
     ---> b9e86919260f
    Successfully built b9e86919260f
    Successfully tagged hnf/centos:latest
    
    

    3 用新构建的镜像生成一个容器

    docker run -it hnf/centos /bin/bash
    
    去查看是否生成两个目录 dataVolumeContainer1 和dataVolumeContainer2
    

    4 这两个目录对应的宿主机的目录在哪里,
    通过docker inspect 2c38b4993770 查看

    其中source是宿主机上面的目录,destination是容器里面的目录

    三 容器里数据相互继承同步

    1 先启动一个父容器
    docker run -it --name dc01 hnf/centos 然后去dataVolumeContainer2 添加内容
    2 然后启动dc02和dc03去继承dc01

    docker run -it --name dc02 --volumes-from dc01 hnf/centos
    docker run -it --name dc02 --volumes-from dc01 hnf/centos
    

    然后你去dc02和dc03里面分别去新建文件,你会发现三个容器直接是相互同步的,
    3 删除dc01看02和03数据是否还存在,答案是存在的

  • 相关阅读:
    Ralasafe基于策略模型
    如何让Oracle表字段自动增长
    Oracle中Number类型字段使用.netTiers和CodeSmith问题的解决方案
    GridView的DataFormatString参考
    解决.NET连接Oracle数据库的一些问题(转)
    C# WinForm开发系列 DataGridView
    C# 插件式程序开发
    Oracle中“字符串中的字符大小写敏感处理方法”
    做一个项目,平时都用到哪些工具提高效率(中)
    折腾了这么多年的.NET开发,也只学会了这么几招 软件开发不是生活的全部,但是好的生活全靠它了(转)
  • 原文地址:https://www.cnblogs.com/huningfei/p/12713200.html
Copyright © 2011-2022 走看看