容器是临时的,但数据不是
本章将深入讲解 Docker 的数据管理机制,重点介绍 Volume(数据卷)的使用方式、挂载策略与最佳实践,帮助你实现容器间的数据共享与持久化存储
默认情况下,容器中的数据会随着容器销毁而丢失
为了解决数据持久化与共享问题,Docker 提供了三种挂载方式:
创建数据卷:
bashdocker volume create mydata
查看卷列表:
bashdocker volume ls
挂载卷到容器:
bashdocker run -d -v mydata:/app/data nginx
容器中的 /app/data 目录将映射到 mydata 卷中
将宿主机目录挂载到容器:
bashdocker run -d -v /home/user/config:/etc/nginx nginx
适用于配置文件、日志文件等需要直接访问的场景
将数据存储在内存中:
bashdocker run -d --tmpfs /app/cache nginx
适用于缓存、会话等不需要持久化的数据
在 docker-compose.yml 中定义卷:
yamlversion: '3.8'
services:
db:
image: postgres
volumes:
- dbdata:/var/lib/postgresql/data
volumes:
dbdata:
Compose 会自动创建并挂载 dbdata 卷,实现数据库持久化
查看卷详情:
bashdocker volume inspect mydata
删除未使用的卷:
bashdocker volume prune
删除指定卷:
bashdocker volume rm mydata
数据卷是容器化部署中不可或缺的一部分
通过合理使用 Volume、Bind Mount 与 tmpfs,你可以实现数据的持久化、共享与隔离


本文作者:AsZero
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!