首页主机资讯ubuntu与docker的集成开发环境

ubuntu与docker的集成开发环境

时间2026-01-20 07:54:04发布访客分类主机资讯浏览1030
导读: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 或已构建镜像;可直接在容器内运行与调试
  • 场景 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”]
    • 启动与连接
      • 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 密码登录,可改为密钥)

三 数据持久化与网络配置要点

  • 数据持久化
    • 数据库与缓存:使用卷将 /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.04python:3.12-slim),避免 latest 造成不可预期升级
  • 构建缓存
    • Dockerfile 变更不生效:在构建时使用 –no-cache;合理组织层以减少无效重建
  • 资源限制
    • 内存/CPU 受限导致 OOM 或编译缓慢:在 docker-compose.yml 中为服务设置 mem_limitcpus
  • 日志与调试
    • 查看容器日志:docker-compose logs -f
    • 进入容器排查:docker-compose exec bash
  • 国内网络加速
    • 配置镜像加速器(/etc/docker/daemon.json):
      • { “registry-mirrors”: [“https://< 你的镜像加速地址> ”] }
      • 重启 Docker:sudo systemctl daemon-reload & & sudo systemctl restart docker

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: ubuntu与docker的集成开发环境
本文地址: https://pptw.com/jishu/786864.html
Golang在Ubuntu如何压缩打包 ubuntu中docker资源限制怎么设置

游客 回复需填写必要信息