一,概念解析

    1,数据卷:数据卷就是在宿主中可以在容器之间进行共享和重用的一系列和文件和文件夹,通过docker run -v命令可以将数据卷挂载到对应的容器目录空间,进行文件读取,容器卷特性如下

        * 数据卷可以在容器之间共享和重用,容器间传递数据将变得高效方便

        * 对数据卷内数据的修改会立马生效,无论是容器内操作还是本地操作

        * 对数据卷的更新不会影响镜像,解耦了应用和数据

        * 卷会一直存在,直到没有容器使用,可以安全地卸载它

    2,数据卷容器:接数据卷,已经存在一个挂载了数据卷的容器;由于数据卷在容器之前是可以共享的,所以此时如果存在其他容器通过docker run --volumes-from [容器别名]命令挂载到该容器上,则该容器可以被称之为数据卷容器,其主要功能是提供数据卷供其他容器挂载。当数据卷容器宕机后,并不会造成数据卷的回收卸载,数据卷会继续挂载在其他容器中。当全部挂载该数据卷的容器全部宕机后,该数据卷才会卸载

二,数据卷

    1,创建需要挂载的文件和文件夹

    2,创建容器,启动镜像

docker run -itd -p 8080:8080 \
# 挂载index.html文件到/docs/index.html并覆盖,
> -v /usr/develop/index.html:/usr/local/tomcat/webapps/docs/index.html \
# 挂载self文件夹到webapps文件夹下
> -v /usr/develop/self:/usr/local/tomcat/webapps/docs/ \
--name tomcat_1 tomcat

    3,进入容器,查看文件内容,文件内容已经被全部更改

    4,页面访问

    5,实时性验证,此时往宿主机的self文件下添加forth.html文件

    6,查看docker容器数据是否已经同步

    7,页面访问

三,数据卷容器

    1,数据卷操作完成后,docker容器中存在一个已经启动的tomcat镜像。并命名为tomcat_1

    2,现在,以该容器为数据卷容器,重新启动tomcat镜像,以该容器为数据卷进行挂载

docker run -itd -p 9090:8080 --volumes-from tomcat_1 --name tomcat_2 tomcat

    3,进入该容器文件路径查看对应文件及文件内容

    4,从上一步可以看到文件已经同步,现在进行数据访问

    5,数据卷容器宕机演示

        * 数据卷容器宕机

        * 进入挂载容器查看数据

        * 并且界面运行正常

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐