出于效率等一系列原因,Docker容器的文件系统在宿主机上存在的方式很复杂,这会带来下面几个问题: 不能在宿主机上很方便地访问容器中的文件。 无法在多个容器之间共享数据。 当容器删除时,容器中产生的数据将会丢失。 为了解决这些问题,Docker引入了数据卷(Volume) 机制。数据卷以独立于Do
数据卷(Volume)是Docker中用来管理宿主机和容器内数据映射的重要概念。Docker镜像存储在一系列只读层中,而在创建容器时,Docker会在顶部添加一个读写层。当容器修改现有文件时,该文件会被拷贝到读写层中,而未更改的文件仍然存在于只读层中。为了持久化这些更改过的数据并实现容器间的数据共享,Docker引入了Volume的概念。
数据卷的设计目的是数据的持久化,其生命周期独立于容器的生命周期。数据卷可以在容器之间共享或重用数据,其更改可以直接生效,并且生命周期将持续到没有容器使用它为止。此外,对数据卷的操作不会影响到镜像本身,可以完成容器到宿主机、宿主机到容器以及容器到容器之间的数据共享。
作者在文章中分享了自己学习Docker Volume的经历。刚开始并不明白Volume的作用,直到最近在学习ODOO二开时,才意识到使用Volume可以频繁更新容器中的文件。作者强调了Volume在实际应用中的重要性,并表达了对云原生技术的边学边走的态度。
作者提到自己在部署mysql、redis、nginx等应用时,经常需要查阅关于Docker Volume的bash命令。虽然作者知道这些命令中很多是关于Docker Volume的,但并没有详细了解。最终,作者决定要深入了解Docker Volume,并介绍了使用docker volume help命令来查看每个Volume命令的详情。
docker volume ls
docker volume create
作者表示自己基本上只在docker run时使用-v参数来自动创建volume,并介绍了如何使用portainer这个可视化容器管理工具来管理自动创建的卷。作者还分享了在容器内部验证路径映射的方法,并强调了portainer的简单易用性。
小编推荐阅读