• Docker数据卷 Volume 挂载,容器路径与linux主机路径的一致性映射,mysql 实战


    十年河东,十年河西,莫欺少年穷

    学无止境,精益求精

    本文参考:你必须知道的Docker数据卷(Volume)  【作者是阿里云最有价值MVP,第一次见到这个称呼~_~】

    1.引言

    docker的镜像是由多个只读的文件系统叠加在一起形成的。当我们在我启动一个容器的时候,docker会加载这些只读层并在这些只读层的上面(栈顶)增加一个读写层。这时如果修改正在运行的容器中已有的文件,那么这个文件将会从只读层复制到读写层。该文件的只读版本还在,只是被上面读写层的该文件的副本隐藏。当删除docker,或者重新启动时,之前的更改将会消失。在Docker中,只读层及在顶部的读写层的组合被称为Union File System(联合文件系统)。

    为了很好的实现数据保存和数据共享,Docker提出了Volume这个概念,简单的说就是绕过默认的联合文件系统,而以正常的文件或者目录的形式存在于宿主机上。又被称作数据卷。

    在Docker中,要想实现数据的持久化(所谓Docker的数据持久化即数据不随着Container的结束而结束),需要将数据从宿主机挂载到容器中。目前Docker提供了三种不同的方式将数据从宿主机挂载到容器中:说白了就是当我们删除容器时,为了保留容器运行期间产生的数据,通过数据卷volume技术,实现容器内部与linux主机上文件目录共享的技术。

    2.数据卷

    2.1、创建数据卷,新建的数据卷默认会放在linux主机的位置为: /var/lib/docker/volumes 目录中

    docer volume create 数据卷名称

    2.2、 查看数据卷

    docker volume ls // 查看所有容器卷
    docker volume inspect 数据卷名称  //查看数据卷详情

      2.3、删除数据卷

    # docker stop edc-nginx // 暂停容器实例
    # docker rm edc-nginx // 移除容器实例
    # docker volume rm edc-nginx-vol // 删除自定义数据卷

    创建使用指定卷的容器,也称之为挂载数据卷

    docker run -it --name=centos01 -v myvol01:/home/centosvol01 centos /bin/bash

    其中myvol01 为我们创建的数据卷 /home/centosvol01 为容器内路径 

    如果不使用默认的数据卷存放路径,我们可以显式的指定一个本机路径,如下:

    docker run -it --name=centos01 -v /home/share/centosvol01:/home/centosvol01 --name=centos002 centos /bin/bash

    其中 /home/share/centosvol01 为本地路径  /home/centosvol01 为容器内路径

     2.4、查看容器是否数据卷挂载是否成功

    docker inspect 容器ID

     此时,我们不管是在主机路径内新建一个文件,还是在容器内路径新建一个文件,都会展示到两个目录中。也可以理解为:这两个路径进行了双向绑定,或者一致性映射。

    通过MYSQL进行实战

    1、拉取Mysql镜像

    docker pull mysql:5.7

    2、设置MySql容器路径挂载、端口映射、登录密码 可参考官方文档:https://hub.docker.com/_/mysql

    docker run -d -p 3306:3306 -v /home/mysql/conf:/etc/mysql/comf.d -v /home/mysql/data:/var/lib/mysql/ -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7

    -d 后台运行

    -p 端口映射

    -v 数据卷挂载  两个-v 挂载两个目录

    -e 环境配置,这里配置的是密码

    --name 给容器起个名字

    3、通过Navicat连接数据库,下载Navicat 地址:https://www.navicat.com/en/products

     端口不能外连接,奶奶个腿

    @天才卧龙的波尔克

     

  • 相关阅读:
    multidownloadXkcd 多线程抓图
    51job_selenium测试2
    51job_selenium测试
    python爬虫 前程无忧网页抓取
    化工pdf下载
    Velocity写法注意
    Velocity中文乱码问题解决方法
    velcoity使用说明:foreach指令
    strults2标签s:set的用法
    struts提交action乱码
  • 原文地址:https://www.cnblogs.com/chenwolong/p/16107903.html
Copyright © 2020-2023  润新知