• Docker从入门到进阶之进阶操作(4) —— docker数据的管理


    前两章dockerfile和supermin都是针对docker镜像的操作,那么这篇文章将向您演示对docker数据的管理

    在容器中管理数据主要有两种方式:

    1. 数据卷(Data volumes)
    2. 数据卷容器(Data volume containers)

    1.数据卷

    1.1 什么是数据卷?

    数据卷是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用的特性:

    1. 数据卷可以在容器之间共享和重用
    2. 对数据卷的修改会立马生效
    3. 对数据卷的更新,不会影响镜像
    4. 卷会一直存在,直到没有容器使用

    数据卷的使用,类似于 Linux 下对目录或文件进行 mount

    1.2 创建数据卷

    1. # 创建一个名为 new-volume 的数据卷
    2. docker volume create new-volume
    3. # 列出
    4. docker volume ls
    5. # 查看卷信息
    6. docker volume inspect new-volume
    7. 复制代码

    1.3 挂载数据卷

    1. # 启动一个挂载新卷的nginx容器
    2. docker run -dit --name nginx -v new-volume:/mnt nginx
    3. # 查看容器的详细信息 grep -a 这里显示具体前后行数
    4. docker inspect nginx|grep Mounts -a5
    5. 复制代码

    1.4 删除数据卷

    数据卷 是被设计用来持久化数据的,它的生命周期独立于容器,Docker 不会在 容器被删除后自动删除 数据卷 ,并且也不存在垃圾回收这样的机制来处理没有任 何容器引用的 数据卷 。如果需要在删除容器的同时移除数据卷。可以在删除容器 的时候使用 docker rm -v 这个命令。

    1. docker volume rm new-volume
    2. 复制代码

    无主的数据卷可能会占据很多空间,要清理请使用以下命令

    1. docker volume prune
    2. 复制代码

    2.数据卷容器

    2.1 什么是数据卷容器?

    数据卷容器,其实就是一个正常的容器,专门用来提供数据卷供其它容器挂载的。

    2.1、容器间共享卷

    在这个案例中,将使用三个nginx容器进行演示,分别为 nginxweb1、nginxweb2、nginxweb3

    1. # 启动nginxweb1 创建共享卷
    2. docker run -dit --name nginxweb1 -p 8081:80 -v /usr/share/nginx/html nginx
    3. # 启动nginxweb2、nginxweb3 并指定共享卷为 nginxweb1
    4. docker run -dit --name nginxweb2 --volumes-from nginxweb1 -p 8082:80 nginx
    5. docker run -dit --name nginxweb3 --volumes-from nginxweb1 -p 8083:80 nginx
    6. # curl测试
    7. curl localhost:8081
    8. curl localhost:8082
    9. curl localhost:8083
    10. # 进入nginxweb1 进行修改index.html文件,并测试
    11. docker exec -it nginxweb1 bash
    12. 容器内操作
    13. echo "This is nginxweb1 website" > /usr/share/nginx/html/index.html
    14. # 退出容器测试 exit
    15. curl localhost:8081
    16. curl localhost:8082
    17. curl localhost:8083
    18. 复制代码
    19. 复制代码


    绵薄之力

    最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走

    自动化测试视频教程

    面试资料

    我们学习软件测试必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作

    ​​这些资料,对于想进阶【自动化测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助…….

  • 相关阅读:
    shim error: docker-runc not installed on system
    Hbuilderx Eslint配置
    8.对象与锁标记
    04- 基于SpringAMQP封装RabbitMQ,消息队列的Work模型和发布订阅模型
    矩阵初等变换整理
    NET8 ORM 使用AOT SqlSugar
    【k8s命令】查看node、pod使用的资源
    目标检测新SOTA:YOLOv9 问世,新架构让传统卷积重焕生机
    Java(97)Java的JNI学习(一)
    如何在Spring Boot中配置双数据源?
  • 原文地址:https://blog.csdn.net/IT_LanTian/article/details/127739023