CentOS 与 Docker 集成开发环境配置指南
一 环境准备与安装 Docker
- 系统要求:建议使用 CentOS 7/8,内核版本不低于 3.10(执行
uname -r 检查)。
- 卸载旧版本(如有):
sudo yum remove -y docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-engine
- 安装依赖与仓库:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
可选(国内更快):sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 安装 Docker 引擎:
sudo yum install -y docker-ce docker-ce-cli containerd.io
- 启动与开机自启:
sudo systemctl start docker && sudo systemctl enable docker
- 验证:
docker --version
docker run --rm hello-world
以上步骤覆盖在线安装、版本选择与基础验证,适用于 CentOS 7/8。
二 基础配置与用户权限
- 非 root 用户免 sudo 使用 Docker:
sudo usermod -aG docker $USER
newgrp docker # 或重新登录终端
- 镜像加速器(国内环境强烈建议):
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-‘EOF’
{
“registry-mirrors”: [“https://.mirror.aliyuncs.com”]
}
EOF
sudo systemctl daemon-reload && sudo systemctl restart docker
- 日志与存储优化(可选):
sudo tee -a /etc/docker/daemon.json <<-‘EOF’
{
“log-driver”: “json-file”,
“log-opts”: {
“max-size”: “100m”,
“max-file”: “3”
},
“storage-driver”: “overlay2”
}
EOF
sudo systemctl restart docker
- 如需暴露 Docker API(仅在内网可信环境):
sudo firewall-cmd --permanent --add-port=2375/tcp && sudo firewall-cmd --reload
以上配置涵盖用户组、加速器、日志轮转与存储驱动,兼顾性能与可维护性。
三 多容器开发环境搭建与编排
- 示例目标:使用 Docker Compose 编排 Nginx + 应用 + Redis,实现代码热更新与日志持久化。
- 目录结构建议:
project/
├─ docker-compose.yml
├─ nginx/
│ └─ nginx.conf
├─ app/
│ └─ index.html(示例)
└─ logs/
- docker-compose.yml(示例):
version: “3.8”
services:
app:
build: ./app
volumes:
- ./app:/usr/src/app
- ./logs/app:/var/log/app
environment:
- ENV=development
redis:
image: redis:alpine
volumes:
- redis-data:/data
nginx:
image: nginx:alpine
ports:
- “8080:80”
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- ./logs/nginx:/var/log/nginx
- ./app:/usr/share/nginx/html:ro
depends_on:
- app
volumes:
redis-data:
- 构建与启动:
docker-compose up -d --build
docker-compose logs -f
- 常用命令:
docker-compose ps
docker-compose exec app sh
docker-compose down
该示例展示了多服务编排、卷挂载、端口映射与依赖管理,适合快速搭建一致的开发环境。
四 IDE 集成与远程调试
- VS Code + Docker 扩展:
- 安装 VS Code 与 Docker 扩展;在扩展中连接本机 Docker(Linux 本机通常无需额外配置)。
- 使用 Dev Containers 打开项目,自动构建开发容器;通过 .devcontainer 配置开发镜像、端口转发与启动任务。
- 适合 Python/Node.js/Go 等语言,结合卷挂载实现代码热更新与调试。
- PhpStorm(在 CentOS 上):
- 安装 Docker 后,在 Settings → PHP → CLI Interpreter 选择 From Docker;
- 在 Settings → PHP → Docker 配置 Docker Compose 文件路径;
- 在 Settings → PHP → Debug 配置 PHP Remote Debug 与路径映射,实现断点调试。
上述集成可显著提升本地与容器内的开发调试效率,并保持环境一致性。
五 可视化管理与运维实践
- Portainer 管理面板:
docker run -d -p 9000:9000
-v /var/run/docker.sock:/var/run/docker.sock
-v portainer_data:/data
–restart always
–name portainer portainer/portainer
访问 http://<服务器IP>:9000 完成初始化,集中管理容器、镜像、网络与卷。
- 资源清理与成本控制:
- 定期清理无用资源:
docker system prune -af --volumes
- 在 CI/CD 或定时任务中清理旧镜像(示例:删除 48 小时前未使用的镜像):
docker image prune -a -f --filter “until=48h”
- 安全提示:
- 避免将 2375/TCP 暴露在公网;如需远程 API,使用 TLS 或仅在受控内网开放。
- 遵循最小权限原则,谨慎使用特权容器与主机挂载。
Portainer 提供直观的 Web 管理界面,配合定时清理策略可保持开发环境轻量与稳定。