CentOS 与 Docker 集成开发环境搭建
一 准备与安装 Docker
sudo yum remove 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 lvm2sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.reposudo yum install -y docker-ce docker-ce-cli containerd.iosudo systemctl start docker && sudo systemctl enable dockerdocker --version 或 docker run hello-worldsudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://ghcr.geekery.cn","https://hub.geekery.cn","https://docker.m.daocloud.io","https://docker.rainbond.cc","https://docker.1panel.live"] } EOFsudo systemctl daemon-reload && sudo systemctl restart dockersudo rpm -Uvh *.rpm --nodeps --force,然后启动 Docker 服务。二 选择与配置开发栈镜像
docker run -it --name my-python-dev -v $(pwd):/app python:3.9-slim bashdocker run -it --name my-node-dev -v $(pwd):/app -p 3000:3000 node:14 bashdocker run -it --name my-java-dev -v $(pwd):/app openjdk:11 bashFROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["python","app.py"]
docker build -t my-python-app . && docker run -p 5000:5000 my-python-appversion: '3.8'
services:
web:
image: node:14
ports: ["3000:3000"]
volumes: ["./:/app"]
working_dir: /app
command: npm start
db:
image: postgres:13
environment:
POSTGRES_PASSWORD: example
volumes: ["pg-data:/var/lib/postgresql/data"]
volumes:
pg-data:
docker-compose up -d 或 docker compose up -d(新版本 CLI)。三 数据持久化与网络配置
pg-data 卷)。version: '3.8'
services:
app:
image: myapp:latest
networks: [app]
db:
image: postgres:13
environment: { POSTGRES_PASSWORD: example }
volumes: ["db-data:/var/lib/postgresql/data"]
networks: [app]
networks:
app:
driver: bridge
volumes:
db-data:
daemon.json 中设置日志轮转,避免磁盘被占满:{
"storage-driver": "overlay2",
"log-driver": "json-file",
"log-opts": { "max-size": "100m" }
}
docker run -d -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data --name portainer portainer/portainer。四 本地 IDE 集成与调试
五 常见问题与优化
sudo 执行 Docker 命令:将当前用户加入 docker 组(执行 sudo usermod -aG docker $USER,然后重新登录会话)。docker run 或 docker-compose.yml 的端口映射(如将 3000:3000 调整为 8080:3000),或释放占用端口的进程。docker logs <container_id> 查看日志定位问题;检查挂载路径、环境变量、配置文件与权限。docker system prune -f(谨慎使用,会删除未使用的容器、网络、镜像与构建缓存)。yum list docker-ce --showduplicates | sort -r,按需安装指定稳定版本,避免跨大版本跳跃。