PZ

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文件不提交到仓库,通过环境变量注入。

迁移流程

换服务器时的完整流程:

  1. 备份数据volume
  2. 备份配置文件
  3. 新服务器安装Docker
  4. 恢复文件
  5. docker-compose up -d

整个过程10分钟,包括数据库数据。

踩坑记录

  1. 端口规划:避免使用默认端口,减少被扫描风险
  2. 内存限制:某些框架在低内存服务器会出问题,选择合适的版本
  3. 配置管理:敏感配置不入库,通过环境变量注入
  4. 容器内开发:注意文件权限和路径映射