• 【docker】数据卷和数据卷容器


    一、如何管理docker容器中的数据?

    二、数据卷

    1、数据卷原理

    将容器内部的配置文件目录,挂载到宿主机指定目录下

    数据卷默认会一直存在,即使容器被删除
    宿主机和容器是两个不同的名称空间,如果想进行连接需要用ssh,exec和attch也类似于ssh这种方式登录
    在企业中ssh这种登录方式会比较危险,安全漏洞很大,尽量减少ssh这种,杜绝了频繁使用exec
    因此使用数据卷的方式把容器内部的文件目录挂载到宿主机指定目录下进行修改,当容器里的文件频繁需要修改时,不需要登录进去,直接使用数据卷方式在宿主机指定的目录下进行修改即可,方便又安全。
     

    2、数据卷的作用

    • 数据卷是一个供容器使用的特殊目录,位于容器中,可以将宿主机目录挂载到数据卷上,对数据卷的修改操作立刻可见,并且更新数据不会影响影响镜像,从而实现数据在宿主机与容器之间的迁移。
    • 数据卷的使用类似于linu下对目录进行mount操作。

    3、数据卷案例

    创建两个容器,挂载到宿主机的同一个目录

                   【宿主机目录】:【容器目录】
    docker run -itd -v /var/www:/data1 --name ydq1 centos:7 bash
    docker run -itd -v /var/www:/data2 --name ydq2 centos:7 bash
    #将宿主机的目录/vae/www目录分别挂载到容器 ydq1和ydq2的/data1 和/data2目录上
    //指定目录即使没有,也会自动创建

    echo "这都是些什么玩意,cao" > /var/www/ky20.txt

    登录到ydq1和ydq2容器,查看挂载目录的文件是否一致

    docker exec -it ydq1 bash

    docker exec -it ydq2 bash

    在ydq1容器的目录修改文件,然后去宿主机查看和ydq2容器查看

    三、数据卷容器

    1、数据卷容器作用

    让两个容器实现数据共享

    如果需要在容器之间共享一些数据,最简单的方法就是使用数据容器,数据卷容器是一个普通的容器,专门提供数据卷给其它容器挂载使用。

    php ----》mysql之间想要通讯,通过socker

    2、数据卷容器案例

    创建数据卷容器

    docker run -it --name test1 -v /data1 -v /data2 centos:7 bash
    #创建容器并进入容器,并共享/data1 和/data2目录

    echo "这是data1下面的文件" > /data1/test.txt
    echo "这是data2下面的文件" > /data2/TEST.txt
    #容器内创建两个测试文件

    docker run -it --name test2 --volumes-from test1 centos:7 bash
    #创建容器并进入,并且去读取test1容器共享的目录

    cat /data1/test.txt
    cat /data2/TEST.txt
    #查看测试数据是否同步(可相互传输)

    四、容器互连(centos镜像

    • 容器互连通过容器的名称在容器间建立一条专门的网络通信隧道,

    • 简单点说,就是会在源容器和接收容器之间建立一条隧道,接收容器可以看到源容器指定的信息。

    dcoker run -itd --name test1 /bin/bash
    docker run -itd --name test2 /bin.bash
    #创建两个容器

    docker exec -it test1 /bin/bash
    #进入到容器test1中
    ping test2
    #尝试ping test2,查看是否连通

    docker exec -it test2 /bin/bash
    #进入到容器test2
    yum -y install net-tools
    #下载工具
    ifconfig
    #查看ip 

    docker run -itd -P --name test3 --link test2:test2 centos:7 /bin/bash
    #创建并运行就收容器取名为test3,使用--link选项指定链接容器,以实现容器的互连
    //--link格式【容器名】:【链接的别名】

    docker exec -it test3 /bin/bash
    #进入到容器test3
    ping test2
    #查看是否可ping通
    yum -y install net-tools
    #下载工具
    ifconfig
    #查看ip 
    ping 172.17.0.2
    #使用ip ping test2的ip

  • 相关阅读:
    元宇宙的“42条共识”
    python笔记_程序流程控制
    教你使用Prometheus-Operator进行K8s集群监控
    【springboot&neo4j】版本差异对比
    【C++】C到C++的入门知识
    Oracle - 多区间按权重取值逻辑
    java计算机毕业设计网上鲜花交易平台源码+数据库+lw文档+系统+部署
    【LC简单】387. 字符串中的第一个唯一字符
    拜托,别再用命令行配置mysql主从复制了,用URLOS界面化部署不香吗?
    【最全】linux服务器上安装Mysql
  • 原文地址:https://blog.csdn.net/manyulanlanlu/article/details/133581878