Docker化开发环境:换服务器10分钟迁移的秘诀
·7 min read
为什么Docker化
作为个人开发者,经常需要换服务器。
传统方式:
- 重新安装JDK、Maven、Node、Python
- 配置环境变量
- 导入数据库
- 至少半天时间
Docker化后:
- docker-compose up -d
- 10分钟搞定
环境组成
我的开发环境包含:
- MySQL 8.0
- JDK 21
- Maven 3.8.6
- Node.js 20.11.1
- Python 3.11.6
技术架构
容器层:Docker + Docker Compose
服务层:MySQL + JDK + Maven + Node + Python
数据层:Volume持久化
配置层:环境变量 + .env文件
dev.sh快捷入口
容器快捷入口命令:
- mvn clean install
- npm run build
- python3 script.py
网络设计
- 容器间通信:Docker网络
- 端口映射:避免使用默认端口
- 服务发现:容器名作为主机名
数据持久化
MySQL数据通过Docker volume持久化:
- 换服务器时打包volume
- 新服务器docker volume create
- 数据零丢失
环境变量管理
敏感信息通过.env文件管理:
- 数据库密码
- API密钥
- 配置参数
.env文件不提交到仓库,通过环境变量注入。
迁移流程
换服务器时的完整流程:
- 备份数据volume
- 备份配置文件
- 新服务器安装Docker
- 恢复文件
- docker-compose up -d
整个过程10分钟,包括数据库数据。
踩坑记录
- 端口规划:避免使用默认端口,减少被扫描风险
- 内存限制:某些框架在低内存服务器会出问题,选择合适的版本
- 配置管理:敏感配置不入库,通过环境变量注入
- 容器内开发:注意文件权限和路径映射