zoukankan      html  css  js  c++  java
  • 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 (推荐)

  • 相关阅读:
    Centos 7 LVM xfs文件系统修复
    Feign报错'xx.FeignClientSpecification', defined in null, could not be registered.
    IDEA提示不区分大小写设置
    基于SpringBoot的多模块项目引入其他模块时@Autowired无法注入其他模块stereotype注解类对象的问题解决
    docker安装mysql
    [转]【收藏】用消息队列和消息应用状态表来消除分布式事务
    临时修改当前crontab编辑器
    golang处理 json中非法字符
    nsq里面WaitGroups两种实用的用法
    golang zlib 压缩,解压缩
  • 原文地址:https://www.cnblogs.com/xhds/p/12319745.html
Copyright © 2011-2022 走看看