• Docker学习第三天(Docker数据卷管理)


    1.Docker数据卷管理

      在Docker中,要想实现数据的持久化(所谓Docker的数据持久化即数据不随着Container的结束而结束),需要将数据从宿主机挂载到容器中。目前Docker提供了三种不同的方式将数据从宿主机挂载到容器中:

    1.volumes:Docker管理宿主机文件系统的一部分(默认文件位置:/var/lib/docker/volumes) 常用

    由上图可知我们到了 /var/lib/docker/volumes 目录下有的文件名很长这时匿名 二有的则是我们创建时制定的

    2.bind mounts:可以存储在宿主机系统的任意位置

    但是,bind mount在不同的宿主机系统时不可移植的,比如Windows和Linux的目录结构是不一样的,bind mount所指向的host目录也不能一样。这也是为什么bind mount不能出现在Dockerfile中的原因,因为这样Dockerfile就不可移植了。
    3.tmpfs:挂载存储在宿主机系统的内存中,而不会写入宿主机的文件系统 不常用

    三种方式示意图:

    2.Volume数据卷的使用

    管理卷

    docker volume create edc-nignx-vol //创建一个自定义容器卷
    docker volume ls //查看所有容器卷
    docker volume inspect edc-nginx-vol //查看指定容器卷详情信息

    用卷创建一个容器

    docker run -d -it --name=edc-nginx -p 8800:80 -v edc-nginx-vol:/usr/share/nginx/html nginx
    //-v代表挂载数据卷,这里使用自定数据卷edc-nginx-vol,并且将数据卷挂载到 /usr/share/nginx/html (这个目录是yum安装nginx的默认网页目录)。
    //如果没有通过-v指定,那么Docker会默认帮我们创建匿名数据卷进行映射和挂载。

    清理卷:

    docker container stop edc-nginx //暂停容器
    docker container rm edc-nginx //移出容器
    docker volume rm edc-nignx-vol//删除自定义数据卷

    3.Bind Mounts 的使用

    Bind Mounts 绑定挂载

    docker run -d -it --name=nginx-test -v /app/wwwroot:/usr/share/nginx/html nginx
    //这里指定了将宿主机上的 /app/wwwroot 目录(如果没有会自动创建)挂载到 /usr/share/nginx/html (这个目录是yum安装nginx的默认网页目录)。

    验证绑定

    docker inspect nginx-test

    清理

    docker container stop nginx-test
    docker container rm nginx-test

    参考学习:https://www.cnblogs.com/edisonchou/p/docker_volumes_introduction.html (推荐)

  • 相关阅读:
    Python3爬虫系列:理论+实验+爬取妹子图实战
    虚机安装后无网卡、网卡驱动
    Linux运维工程师面试题整理
    睡眠或者重启windows,无法ssh连接或者pingVMware的虚机
    W10: Warning: Changing a readonly file使用vi/vim报错问题解决
    keyboard-interactive authentication with the ssh2 server failed 的SecureCRT报错解决
    公网访问内网实现(内网穿透)
    Linux内网时钟同步问题(ntp和chrony)
    xshell的快捷复制粘贴设置
    Linux中shell去除空行的几种方法
  • 原文地址:https://www.cnblogs.com/xhds/p/12319745.html
Copyright © 2020-2023  润新知