zoukankan      html  css  js  c++  java
  • Docker:容器数据卷

    背景

    docker理念:

    • 将应用与运行的环境打包形成容器,运行可以伴随容器,但是我们对数据的要求希望是持久化的
    • 容器之间希望可以有共享数据
      Docker容器产生的数据,如果不通过docker commit生成新的镜像,使得数据作为镜像的一部分保存下来,那么当容器删除以后,数据自然就没有了。
      为了能保存数据,在docker中我们使用容器数据卷。
      特点:
    • 数据卷可以在容器之间共享或重用数据
    • 卷中的更改直接生效
    • 数据卷中的更改不会包含在镜像的更新中。
    • 数据卷的生命周期一直持续到没有容器使用它为止。

    数据卷添加

    管理volume

     docker volume create tomcat-vol // 自定义数据卷
     docker volume ls // 查看所有数据卷
     docker volume inspect tomcat-vol // 查看指定数据卷详情信息
    

    image-20200919235445733

    自定义数据卷后,我们可以使用该数据卷:

    docker run -p 8080:8080 -d --name mytomcat -v tomcat-vol:/usr/local/tomcat f796d3d2c195
    

    再观察该目录:

     ls -al  /var/lib/docker/volumes/tomcat-vol/_data
    

    image-20200919235350823

    说明数据卷挂载成功。

    run

    命令:

    docker run -it -v /宿主机绝对路径目录:/容器目录 镜像名
    

    容器内目录不能修改文件,只能查看,宿主机可以修改文件(ro:read only)

    docker run -it -v /宿主机绝对路径目录:/容器目录:ro 镜像名
    

    DockerFile添加

    vi Dockerfile
    docker build -f /mydocker/Dockerfile -t wj/centos .
    

    Dockerfile文件内容:

    FROM centos
    VOLUME ["/dataContainer","/dataContainer2"]
    CMD echo "success"
    CMD  /bin/bash
    

    执行结果:
    image-20200917103509782

    数据卷容器

    命名的容器挂载数据卷,其他容器通过挂载这个(父容器)实现数据共享,挂载数据卷的容器,成为数据卷容器
    命令:--volumes-from

    docker run -it --volumes-from 父容器名 镜像名
    

    容器之间配置信息的传递,数据卷的生命周期一直持续到没有容器使用它为止。

  • 相关阅读:
    android之字符串的一些转码
    android之界面一些操作
    日期的一些处理
    android数据的4种存储方式
    第四周学习情况
    第四周作业2
    第四周作业
    第三章学习情况
    第二章学习情况(2020.02.24-2020.03.01)
    个人情况介绍+《人月神话》读后感+本周学习情况(2020.02.17-2020.02.23)
  • 原文地址:https://www.cnblogs.com/wwjj4811/p/13687212.html
Copyright © 2011-2022 走看看