美文网首页
Docker容器数据卷

Docker容器数据卷

作者: yywfy的昵称 | 来源:发表于2020-11-18 14:04 被阅读0次

    Docker容器产生的数据,如果不通过docker commit生成新的镜像,使得数据作为镜像的一部分保存下来,当数据删除后,数据自然也就没有了,为了能保存docker里的数据,需要使用到数据卷。将宿主机上的文件夹挂载到Docker的文件系统中,Docker退出时,数据也不会丢失,而且可以将同一个宿主机文件夹挂载到多个Docker容器中,实现数据的共享。

    给Docker 容器添加数据卷的方法有2种:

    1,在启动docker 容器的时候,添加-v参数,用命令行添加数据卷。

    docker run -it -v /宿主机目录:/容器内目录 --privileged=true  centos /bin/bash

    docker run

    2,使用docker file在构件docker镜像的时候指定数据卷。

    Dockerfile:

    #基于tomcat:8.5构造一个镜像

    FROM tomcat:8.5

    #加入容器卷

    VOLUME ["/usr/local/tomcat/webapps"]

    CMD echo "finished,--------success1"

    CMD /bin/bash

    构建完Docker镜像之后,启动一个Docker 容器,用命令docker inspeact 容器ID,查看容器的数据卷,不给定宿主机的目录时,会自动生成一个文件夹:

    docker inspect

    多个Docker容器挂载同一个数据卷

    创建Dockerfile,使用dockerfile构造镜像生成一个自定义的centos

    dockerfile

    使用自己创建的镜像启动一个容器

    docker run -it –name=os1 mycentos01:1.0 /bin/bash

    使用自己创建的镜像启动第二个容器继承第一个

    docker run -it –name=os2 --volumes-from os1 mycentos01:1.0/bin/bash

    使用自己创建的镜像启动第三个容器继承第二个

    docker run -it –name=os3 --volumes-from os2 mycentos01:1.0/bin/bash

    进入os1在mydata里面创建个os1.txt,进入os2查看mydata里面也有os1.txt,在os2的mydata里面创建os2.txt,进入os3查看mydata里面的数据,可以找到os1.txt和os2.txt。

    删除os1之后情况,os2,os3的mydata里面的数据不会发生变化。

    相关文章

      网友评论

          本文标题:Docker容器数据卷

          本文链接:https://www.haomeiwen.com/subject/tsnqiktx.html