在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的容器化技术能避免环境冲突,提高开发效率,是现代软件开发的重要工具。