在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的容器化技術能避免環境沖突,提高開發效率,是現代軟件開發的重要工具。