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数据是否还存在,答案是存在的

  • 相关阅读:
    tkinter 写一个简易的ide
    Vue+webpack项目配置便于维护的目录结构
    爬虫:输入网页之后爬取当前页面的图片和背景图片,最后打包成exe
    linux vue项目+npm run build + nginx
    Android 进阶自定义 ViewGroup 自定义布局
    Android 属性动画框架 ObjectAnimator、ValueAnimator ,这一篇就够了
    桶排序
    Test CMake run finished with errors
    搭建私人云盘
    Java中 / 和 %
  • 原文地址:https://www.cnblogs.com/huningfei/p/12713200.html
Copyright © 2011-2022 走看看