ubuntu与docker的集成开发环境
导读:Ubuntu 与 Docker 的集成开发环境实战指南 一 环境准备与安装 更新系统并安装依赖 sudo apt-get update && sudo apt-get install -y apt-transport-h...
Ubuntu 与 Docker 的集成开发环境实战指南
一 环境准备与安装
- 更新系统并安装依赖
- sudo apt-get update & & sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
- 添加 Docker 官方 GPG 与仓库(推荐方式)
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
- echo “deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable” | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
- 安装并启动 Docker
- sudo apt-get update & & sudo apt-get install -y docker-ce docker-ce-cli containerd.io
- sudo systemctl start docker & & sudo systemctl enable docker
- 验证安装
- docker --version
- docker run --rm hello-world
- 可选 非 root 使用
- sudo usermod -aG docker $USER(注销并重新登录后生效)
二 快速上手三种典型开发场景
-
场景 A PHP 全栈(Nginx + PHP-FPM + MySQL + Redis)
- 目录与配置
- 项目根目录创建:docker-compose.yml、./nginx/default.conf、./www/index.php
- Nginx 配置要点:将 .php 请求转发到 php:9000,root 指向挂载的 /www
- 核心 docker-compose.yml
- version: ‘3.8’ services: nginx: image: nginx:latest ports: [“80:80”] volumes: [“./nginx:/etc/nginx/conf.d”, “./www:/www”] php: image: php:8.2-fpm volumes: [“./www:/www”] mysql: image: mysql:8.0 environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: app MYSQL_USER: dev MYSQL_PASSWORD: dev volumes: [“./mysql:/var/lib/mysql”] redis: image: redis:7 ports: [“6379:6379”]
- 启动与验证
- docker-compose up -d
- 浏览器访问 http://localhost,放置 phpinfo 或简单连接 MySQL/Redis 的脚本验证连通性
- 目录与配置
-
场景 B Python 开发(Docker + PyCharm)
- 构建镜像(示例 Dockerfile)
- FROM ubuntu:24.04 RUN apt-get update & & apt-get install -y python3 python3-pip & & rm -rf /var/lib/apt/lists/* WORKDIR /app COPY requirements.txt . RUN pip3 install -r requirements.txt CMD [“python3”, “app.py”]
- 构建与运行
- docker build -t myflaskapp .
- docker run -p 5000:5000 myflaskapp
- PyCharm 集成
- Settings → Project → Python Interpreter → Add → Docker,选择本地 Docker 或已构建镜像;可直接在容器内运行与调试
- 构建镜像(示例 Dockerfile)
-
场景 C 远程/容器化 VS Code 开发
- 基于 Ubuntu 的开发镜像(示例 Dockerfile 片段)
- FROM ubuntu:24.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update &
&
apt-get install -y openssh-server vim python3 python3-pip &
&
rm -rf /var/lib/apt/lists/*
RUN mkdir -p /var/run/sshd &
&
echo ‘root:123456’ | chpasswd
RUN sed -i ‘s/#PermitRootLogin./PermitRootLogin yes/’ /etc/ssh/sshd_config &
&
sed -i 's/#PasswordAuthentication./PasswordAuthentication yes/’ /etc/ssh/sshd_config EXPOSE 22 CMD [“/usr/sbin/sshd”, “-D”]
- FROM ubuntu:24.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update &
&
apt-get install -y openssh-server vim python3 python3-pip &
&
rm -rf /var/lib/apt/lists/*
RUN mkdir -p /var/run/sshd &
&
echo ‘root:123456’ | chpasswd
RUN sed -i ‘s/#PermitRootLogin./PermitRootLogin yes/’ /etc/ssh/sshd_config &
&
- 启动与连接
- docker-compose.yml
- version: ‘3.8’ services: devbox: build: . container_name: devbox volumes: [“./code:/root/code”] ports: [“2222:22”]
- 启动:docker-compose up -d
- VS Code 安装 Remote - SSH,连接 root@localhost -p 2222,即可在容器内编辑与调试(生产不建议开启 root 密码登录,可改为密钥)
- docker-compose.yml
- 基于 Ubuntu 的开发镜像(示例 Dockerfile 片段)
三 数据持久化与网络配置要点
- 数据持久化
- 数据库与缓存:使用卷将 /var/lib/mysql、/var/lib/redis 等目录挂载到宿主机,避免容器重建导致数据丢失
- 代码与配置:将项目代码与 Nginx 配置挂载到容器内,便于热更新与版本管理
- 网络与服务发现
- Docker Compose 默认创建共享网络,容器间可用服务名互相访问(如 php 服务名直连)
- 端口映射:仅对需要对外暴露的服务(如 80/443/6379/22)做宿主机端口绑定
- 环境变量与安全
- 敏感信息(数据库密码、密钥)优先通过 .env 文件或 Docker Secrets 管理,避免硬编码
- 生产环境禁用 root 远程登录,使用 SSH 密钥或 TLS 证书进行认证
四 常见问题与排障清单
- 权限问题
- 非 root 用户执行 docker 报权限不足:将用户加入 docker 组并重新登录
- 镜像与版本
- 指定明确的镜像标签(如 ubuntu:24.04、python:3.12-slim),避免 latest 造成不可预期升级
- 构建缓存
- Dockerfile 变更不生效:在构建时使用 –no-cache;合理组织层以减少无效重建
- 资源限制
- 内存/CPU 受限导致 OOM 或编译缓慢:在 docker-compose.yml 中为服务设置 mem_limit、cpus
- 日志与调试
- 查看容器日志:docker-compose logs -f
- 进入容器排查:docker-compose exec bash
- 国内网络加速
- 配置镜像加速器(/etc/docker/daemon.json):
- { “registry-mirrors”: [“https://< 你的镜像加速地址> ”] }
- 重启 Docker:sudo systemctl daemon-reload & & sudo systemctl restart docker
- 配置镜像加速器(/etc/docker/daemon.json):
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu与docker的集成开发环境
本文地址: https://pptw.com/jishu/786864.html
