Docker 容器默认是无状态的——容器删除后数据即消失。生产环境必须使用持久化存储。本文详解 Docker 的 Volume、Bind Mount、网络模式及生产级存储策略。
一、数据持久化三种方案
| 方案 | 说明 | 数据位置 | 适用场景 |
|---|---|---|---|
| Volume | Docker 管理 named volume | /var/lib/docker/volumes/ | 生产首选,跨容器共享 |
| Bind Mount | 映射宿主机路径 | 任意目录 | 开发环境代码热重载 |
| tmpfs | 内存挂载 | 宿主机内存 | 敏感数据,不写入磁盘 |
# Volume(Docker 管理)
docker run -v my-data:/app/data my-app
# Bind Mount(宿主机目录)
docker run -v /host/data:/app/data my-app
# tmpfs(内存)
docker run --tmpfs /app/cache my-app
二、网络模式
| 模式 | 说明 | 适用 |
|---|---|---|
| bridge | 默认,容器间通过内部 IP 通信 | 单机多容器 |
| host | 容器直接使用宿主机网络 | 性能敏感 |
| overlay | 跨主机容器通信 | Swarm/K8s |
| none | 无网络 | 完全隔离 |
# 创建自定义网络(容器间可通过名字通信)
docker network create my-net
docker run --name db --network my-net postgres
docker run --name api --network my-net my-api
# api 容器内可直接访问 db:5432
三、生产存储策略
| 方案 | 说明 |
|---|---|
| 本地 Volume | 单宿主机,最简单 |
| NFS Volume | 跨主机共享存储 |
| 云盘挂载 | AWS EBS / 阿里云 ESSD |
| 分布式存储 | Ceph / Portworx |
相关阅读
继续阅读
探索更多技术文章
浏览归档,发现更多关于系统设计、工具链和工程实践的内容。
「saas」更多文章
自定义域名接入 Cloudflare:CDN 加速与缓存规则配置实战
手把手讲解自定义域名接入 Cloudflare CDN 的完整流程:NS 接管、SSL/TLS 模式选择、橙云代理与灰云 DNS 的区别,并用 2024 年后的新 Cache Rules 引擎实战配置静态资源长缓存、HTML 不缓存、后台 Bypass,让边缘缓存命中率最大化。
Hugo 部署到 Cloudflare Pages 实战:从 Git 推送到全球边缘上线
详解 Cloudflare Pages 部署 Hugo 静态站的完整流程,涵盖框架预设、HUGO_VERSION 环境变量固定、构建命令、自定义域名、分支预览、_headers 缓存安全头配置及常见构建失败排查,一次推送即可全球边缘上线。
Cloudflare Workers 入门实战:在边缘运行你的第一行代码
一份面向初学者的 cloudflare workers 教程,从 V8 Isolate 运行时模型讲起,手把手演示 wrangler 初始化、路由分发、KV 存储、Cache API 缓存响应与环境变量配置,帮你在 30 分钟内部署第一个生产可用的边缘 Serverless 应用。