在Ubuntu上安装Docker是开发的第一步,需通过以下步骤完成:
sudo apt update && sudo apt upgrade -y
apt-transport-https、ca-certificates等工具支持。sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
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
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命令。
对于需要管理多容器应用(如Web应用+数据库)的开发者,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文件定义多容器应用,简化了部署流程。
自定义镜像是Docker开发的核心,通过Dockerfile定义开发环境的依赖和配置。以下是具体步骤:
Dockerfile。mkdir my-dev-project && cd my-dev-project
# 使用官方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可以快速复现一致的开发环境,避免“在我机器上能跑”的问题。
构建完成后,可通过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编辑代码,如同在本地开发一样。
开发过程中,需要频繁执行以下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
这些命令能帮助开发者高效管理容器生命周期。
对于复杂项目(如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的容器化技术能避免环境冲突,提高开发效率,是现代软件开发的重要工具。