温馨提示×

ubuntu下如何使用docker进行开发

小樊
38
2025-09-27 10:03:51
栏目: 智能运维

Ubuntu下使用Docker进行开发的完整流程

1. 安装Docker Engine

在Ubuntu上安装Docker是开发的第一步,需通过以下步骤完成:

  • 更新系统包:确保系统软件包为最新版本,避免依赖冲突。
    sudo apt update && sudo apt upgrade -y 
  • 安装依赖工具:Docker需要apt-transport-httpsca-certificates等工具支持。
    sudo apt install -y apt-transport-https ca-certificates curl software-properties-common 
  • 添加Docker官方GPG密钥:验证Docker软件包的完整性。
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg 
  • 设置Docker APT仓库:将Docker官方仓库添加到系统源列表。
    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 Engine:更新包索引并安装Docker核心组件。
    sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io 
  • 验证安装:运行hello-world镜像,确认Docker能正常启动容器。
    sudo docker run hello-world 
  • 配置用户权限(可选):将当前用户加入docker组,避免每次运行Docker命令都需要sudo
    sudo usermod -aG docker $USER && newgrp docker # 立即生效 

以上步骤完成后,即可在Ubuntu上使用Docker命令。

2. 安装Docker Compose(可选但推荐)

对于需要管理多容器应用(如Web应用+数据库)的开发者,Docker Compose是必备工具。安装步骤如下:

  • 下载Docker Compose二进制文件:选择最新版本(以v2.32.4为例)。
    sudo curl -L "https://github.com/docker/compose/releases/download/v2.32.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose 
  • 赋予执行权限
    sudo chmod +x /usr/local/bin/docker-compose 
  • 验证安装
    docker-compose --version 

Docker Compose通过docker-compose.yml文件定义多容器应用,简化了部署流程。

3. 构建自定义开发镜像

自定义镜像是Docker开发的核心,通过Dockerfile定义开发环境的依赖和配置。以下是具体步骤:

  • 创建项目目录:用于存放项目代码和Dockerfile
    mkdir my-dev-project && cd my-dev-project 
  • 编写Dockerfile:定义镜像的基础环境(以Python开发环境为例)。
    # 使用官方Ubuntu镜像作为基础 FROM ubuntu:22.04 # 设置环境变量,避免交互式提示 ENV DEBIAN_FRONTEND=noninteractive # 安装必要的开发工具和依赖 RUN apt update && apt install -y \ build-essential \ python3 \ python3-pip \ git \ vim \ && rm -rf /var/lib/apt/lists/* # 设置工作目录(容器内的默认路径) WORKDIR /app # 暴露应用端口(如Python Flask的8000端口) EXPOSE 8000 # 复制项目代码到容器内(可选,可在后续步骤中动态挂载) # COPY . /app # 设置默认命令(可选) # CMD ["python3", "app.py"] 
  • 构建镜像:使用docker build命令生成镜像,-t参数指定镜像名称和标签。
    docker build -t my-python-dev-env:1.0 . 
  • 验证镜像:查看本地镜像列表,确认镜像已构建成功。
    docker images 

通过Dockerfile可以快速复现一致的开发环境,避免“在我机器上能跑”的问题。

4. 运行开发容器

构建完成后,可通过docker run命令启动容器,进入开发环境:

  • 基本运行:以后台模式启动容器,映射端口(如将主机的8000端口映射到容器的8000端口)。
    docker run -d -p 8000:8000 --name my-dev-container my-python-dev-env:1.0 
  • 交互式运行:进入容器的命令行,直接进行开发操作(如编写代码、安装依赖)。
    docker run -it --rm --name my-dev-container my-python-dev-env:1.0 /bin/bash 
    参数说明:
    • -it:分配交互式终端;
    • --rm:退出容器后自动删除(适合临时调试);
    • --name:指定容器名称。
  • 挂载代码目录:将主机的项目目录挂载到容器内,实现代码实时同步(修改主机代码无需重启容器)。
    docker run -it -v $(pwd):/app -p 8000:8000 --name my-dev-container my-python-dev-env:1.0 /bin/bash 
    参数说明:
    • -v $(pwd):/app:将主机的当前目录挂载到容器的/app目录。

进入容器后,可使用pip install安装依赖、vim编辑代码,如同在本地开发一样。

5. 常用开发操作命令

开发过程中,需要频繁执行以下Docker命令:

  • 查看运行中的容器
    docker ps 
  • 查看所有容器(包括已停止的)
    docker ps -a 
  • 停止容器
    docker stop my-dev-container 
  • 启动已停止的容器
    docker start my-dev-container 
  • 删除容器
    docker rm my-dev-container 
  • 删除镜像
    docker rmi my-python-dev-env:1.0 
  • 查看容器日志(实时输出):
    docker logs -f my-dev-container 
  • 在运行中的容器内执行命令(如安装依赖):
    docker exec -it my-dev-container pip install requests 

这些命令能帮助开发者高效管理容器生命周期。

6. 使用Docker Compose管理多容器应用

对于复杂项目(如Web应用+Redis+PostgreSQL),可使用docker-compose.yml文件定义多容器服务:

  • 创建docker-compose.yml文件
    version: '3' services: web: build: . # 使用当前目录的Dockerfile构建镜像 ports: - "5000:5000" # 主机端口:容器端口 volumes: - .:/code # 挂载主机目录到容器 depends_on: - redis redis: image: "redis:alpine" # 使用官方Redis镜像 
  • 构建并启动服务
    docker-compose up -d # -d表示后台运行 
  • 查看服务状态
    docker-compose ps 
  • 停止并删除服务
    docker-compose down 

Docker Compose简化了多容器应用的部署和管理,适合团队协作和复杂项目。

通过以上步骤,即可在Ubuntu上使用Docker搭建高效、一致的Python开发环境。Docker的容器化技术能避免环境冲突,提高开发效率,是现代软件开发的重要工具。

0