• Docker自学纪实(三)Docker容器数据持久化


    谈起数据卷

    我一直觉得是个枯燥无聊的话题

    但是通过今天的实操和阅读

    我发现其实并不是

    其实就像走夜路

    没有光明,第一次都是恐惧

    但是如果走的次数多了

    或者静下心来去克制恐惧

    也许就会驾轻就熟或者等到黎明

    拼一下,开始吧!!!

    我就举两个例子,如果实操一遍,立马就明白了。

    • 数据卷

    原理:将宿主机目录挂载到容器目录,原理和普通的挂载差不多。

    数据卷的特点:

    1. 在容器启动初始化时,同步容器在宿主机的挂载点中的数据。
    2. 数据卷可以在容器内直接共享和重用。
    3. 可以直接修改容器在宿主机挂载点里面的数据内容。
    4. 数据卷的变化不会影响镜像的更新。
    5. 即使删除容器,该数据卷不受影响。
    • 容器数据卷

    原理:将一个运行的容器作为数据卷,其他容器可以通过挂载这个容器实现数据共享。

    容器数据卷的特点:具备容器的便捷性,可移动性。

    • 查看容器挂载点目录:

     1 docker inspect 容器ID/容器名 

    找到mounts段:

    注:Source:是宿主机目录、Destination:是容器目录

    下面两个例子,跟着做一遍呗。

    数据卷

    :使用httpd镜像创建一个容器名为WEB1,将宿主机的/www目录挂载到WEB01中的/blog目录,然后在宿主机的/www目录下创建一个index.php,查看容器中的/blog目录中是否存在index.php文件。

    1 [root ~]# docker run -itd --name WEB01 -v /www:/blog httpd # -v 将宿主机的/www目录挂载到WEB01中的/blog目录
    2 [root ~]# docker ps
    3 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    4 f8911ae76a6e httpd "httpd-foreground" 5 seconds ago Up 4 seconds 80/tcp WEB01
    5 [root ~]# cd /www
    6 [root www~]# ls
    7 [root www~]# touch index.php
    8 [root www~]# docker exec WEB01 ls /blog
    9 index.php

    容器数据卷

    例:使用httpd镜像创建一个容器数据卷,容器名为dvdata。使用centos镜像创建一个容器并挂载dvdata,在dvdata容器里面创建一个a.txt文件,查看容器centos的/home目录下是否有a.txt文件。

     1 [root ~]# docekr run -itd -v /home --name dvdata httpd #创建容器数据卷,名为dvdata,容器数据卷共享目录为/home。也就是说,其他容器挂载dvdata容器时其实挂载的是dvdata容器里的/home文件夹。
     2 [root ~]# docker run -itd --name centos --volumes-from dvdata centos #创建centos容器,--volumes-from参数为指定容器数据卷。
     3 [root ~]# docker ps
     4 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
     5 65d032a73313 centos "/bin/bash" 3 seconds ago Up 1 second centos
     6 fe3dd37b258d httpd "httpd-foreground" 2 minutes ago Up 2 minutes 80/tcp dvdata
     7 [root ~]# docker exec centos ls /home
     8 [root ~]#
     9 [root ~]# docker exec dvdata touch /home/a.txt #在容器数据卷中的/data目录下创建a.txt文件
    10 [root ~]# docker exec centos ls /home
    11 [root ~]# a.txt

    现在觉得docker挺有意思,只要认真看文章,动手操作一下,好多云里雾里的问题都烟消云散了。希望对你们的学习有帮助,加油!!!

  • 相关阅读:
    接口测试工具postman学习
    接口测试工具jmeter压力测试
    WSGI规范
    ADB命令详解
    eclipse导入远端git
    os.system、os.popen和subprocess.popen的区别
    获取Android当前运行最顶层的activity
    python+appuim 处理系统权限弹窗
    Appium之xpath定位元素
    Charles配置抓取HTTPS请求的Android配置
  • 原文地址:https://www.cnblogs.com/Smbands/p/10150387.html
Copyright © 2020-2023  润新知