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

  • 相关阅读:
    .NetCore Grpc 客服端 工厂模式配置授权
    DOCKER 拉取 dotnet 镜像太慢 docker pull mcr.microsoft.com too slow
    Introducing .NET 5
    VSCode 出现错误 System.IO.IOException: The configured user limit (128) on the number of inotify instances has been reached.
    Omnisharp VsCode Attaching to remote processes
    zookeeper3.5.5 centos7 完全分布式 搭建随记
    Hadoop2.7.7 centos7 完全分布式 配置与问题随记
    MySQL索引 索引分类 最左前缀原则 覆盖索引 索引下推 联合索引顺序
    SQL基础随记3 范式 键
    MySQL调优 优化需要考虑哪些方面
  • 原文地址:https://www.cnblogs.com/huningfei/p/12713200.html
Copyright © 2011-2022 走看看