• Docker的数据管理


    Docker的数据管理

    前言

    docker有一个很明显的问题, 关闭并启动容器, 其数据不受影响, 但是删除docker 容器, 则其改变将会全部消失。

    一、数据卷

    1、数据卷原理
    • 数据卷默认会一直存在,即使容器被删除。
    • 宿主机和容器时两个不同的命名空间,如果想进行连接需要使用ssh、exec和attch这一类登录方式实现。
    • 在企业中ssh这种登录方式会比较危险,安全漏洞大,尽量减少ssh这种,杜绝频繁使用exec。
    • 因此使用数据卷的方式把容器内部的文件目录挂载到宿主机指定目录下进行修改,当容器里的文件频繁需要修改时不需要登陆,直接使用数据卷方式在宿主机指定的目录下进行修改即可。
    • 个人理解就是类似rsync的数据同步。
    2、数据卷作用

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

    3、数据操作
    docker run -itd -v
        -v 绑定一个卷
    
    • 1
    • 2
    //单容器配置:
        docker run -itd -v /opt/test:/data --name test centos:7
        docker exec -it test /bin/bash   
    
    • 1
    • 2
    • 3

    image-20220907225213720

    //两个容器挂载同一目录:
        docker run -itd -v /opt/test:/data2 --name test2 centos:7
        docker exec -it test2 /bin/bash   
    
    • 1
    • 2
    • 3

    image-20220907225557934

    其实就是挂载了同一个目录,数据都是同一个。

    二、数据卷容器

    1、数据卷容器作用
    • 让两个容器实现数据共享
    • 如果需要在容器之间共享一些数据,最简单的方法就是使用数据卷容器。数据卷容器是一个普通的容器,专门提供数据卷给其他容器挂载使用。
    • php ---->mysql之间想要通讯,通过socket
    2、数据卷容器操作
    #创建一个容器作为数据卷容器
    docker run -it --name test1 -v /data1 -v /data2 centos:7 bash	#创建并进入容器
    echo "this is test02 file" > /data1/test.txt		  	#容器内创建测试文件1
    echo "THIS IS TEST2 FILE" > /data2/TEST.txt					#容器内创建测试文件2
    
    #使用--volumes-from来挂载test2容器中的数据卷到新的容器
    docker run -it --name test2 --volumes-from test1 centos:7 bash	#创建并进入容器
    cat data1/test.txt											#查看测试数据是否同步
    cat data2/TEST.txt
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    image-20220907230456365

    三、容器互联

    容器互联是通过容器的名称在容器间建立一条专门的网络通信隧道。简单点说,就是会在源容器和接收容器之间建立一条隧道,接收容器可以看到源容器指定的信息。

    #创建并运行源容器取名web1
    docker run -itd -P --name test1 centos:7 /bin/bash	
    	
    #创建并运行接收容器取名web2,使用--link选项指定连接容器以实现容器互联
    docker run -itd -P --name test2 --link test1:test1 centos:7 /bin/bash			#--link 容器名:连接的别名
    
    #进web2 容器, ping test1
    docker exec -it test2 bash
    ping test1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    image-20220908003129854
    cker exec -it test2 bash
    ping test1

    
    [外链图片转存中...(img-s9c99Usk-1663501649469)]
    
    • 1
    • 2
  • 相关阅读:
    数据结构-二叉树
    【万字详解】JavaScript算法 | 力扣经典题~收藏起来,面试用得上
    淘宝订单API接口,你想要的都有
    Linux postman脚本运行环境配置
    python --处理xml(ElementTree模块)
    Mac搭建anaconda环境并安装深度学习库
    关于ASO优化的分步入门指南1
    live555
    AWVS的简介与安装
    [Spring实战] 整合Spring/SpringMVC/Mybatis(SSM)实现登录功能(带前端)
  • 原文地址:https://blog.csdn.net/weixin_46514551/article/details/126922084