zoukankan      html  css  js  c++  java
  • Docker(七):Docker容器卷管理

    1、使用容器卷的原因:Docker容器产生的数据,如果不通过commit生成新的镜像,数据会在容器删除后丢失。为了能持久化保存和共享容器的数据,Docker提出了两种管理数据的方式:数据卷和数据卷容器。

     2、数据卷操作

      2.1 增加新数据卷

        docker run -d -v /tmpd/busyboxtest --name busyboxtest busybox

        -v参数会在容器的/tmp/busybox下创建一个新的容器卷

        通过docker inspect命令查看数据卷的位置

        docker inspect busyboxtest | grep volumes
          "/tmp/busyboxtest": "/var/lib/docker/volumes/577784c9e8aa3fba15ebf56ee680b6fea50aafe60bd753b64c3699e461fa3e39/_data"

      2.2 将主机目录挂载为数据卷

        docker run -tid -v /tmp/volumetest:/data:ro --name busyboxtest2 busybox

        将宿主机的/tmp/volumetest以ro的方式挂载在/data下

        

      2.3 创建数据卷容器

        如果需要在容器之间共享一些持续更新的数据,最简单的方式使用数据卷容器

        首先创建一个数据卷容器dbdata并在其中创建一个数据卷挂载到/dbdata
          docker run -it -v /dbdata --name dbdata ubuntu
        然后在其他容器使用--volume-from来挂载dbdata容器中的数据卷
          docker run -it --volume-from dbdata --name db1 ubuntu
          docker run -it --volume-from dbdata --name db2 ubuntu
        此时容器db1和db2挂载同一个数据卷到/dbdata目录,三个容器任何一方写入,其他容器都可以看到
        --volume-from多次指定可以挂载多个数据卷,并且--volume-from参数所挂载数据卷的容器并不需要运行
        如果删除了挂载的容器,数据卷并不会自动删除,如果删除一个数据卷,需要删除最后一个还挂着他的容器使用docker rm -v

      2.4 数据卷备份恢复

      2.4.1 备份:
        备份dbdata数据卷容器内的数据卷
          docker run --volume-from dadata -v $(pwd):/backup --name worker ubuntu tar cvf /backup/backup.tar.gz /dbdata
        命令解释:使用ubuntu镜像创建一个叫worker的容器,并将本机的当前目录挂载到worker容器的/backup目录。然后使用--volume-from挂载dbdata容器的数据卷,容器启动后将打包/dbdata目录到/backup目录下。同时也存在了本机的当前目录下
      2.4.2 恢复:
        恢复数据到一个容器
        首先创建一个带有数据卷的容器docker run -v /dbdata --name dbdata2 ubuntu /bin/bash
        之后在创建一个新的容器,挂载dbdata2的容器,并使用untar解压备份文件到所挂载的容器即可
        docker run --volume-from dbdata2 -v $(pwd):/backup busybox tar xf /backup/backup.tar.gz

    3、容器互联

      首先创建一个数据库容器:
        docker run -d --name db mysql
      创建一个新的web容器,并将它连接到db容器:
        docker run -d -P --name web --link db:db nginx
      此时db容器和web容器建立互联,其中--link db:db是name:alias name是连接容器的名称,alias这个连接的别名
      使用docker ps查看到db和web容器,其中db容器的names列有db和web/db,这表示web容器连接到db容器,允许web容器访问db容器的信息

  • 相关阅读:
    【网易官方】极客战记(codecombat)攻略-地牢-矮人骚乱
    Digital Twin——IoT的下一个浪潮
    PPT |《Kubernetes的兴起》
    视频课程 | Kubernetes的兴起
    干货 | 京东云原生容器—SpringCloud实践(一)
    干货 | 独创分布式网络负载均衡最佳实践
    视频课程 | 云原生下的Serverless浅谈
    ubuntu不能联网的问题
    boost库在windows上的安装
    python tkinter
  • 原文地址:https://www.cnblogs.com/dukuan/p/7647478.html
Copyright © 2011-2022 走看看