Docker将应用程序及其依赖项打包到容器中——可移植、可重现的单元,在任何机器上都以相同方式运行。理解Docker现在是软件开发的基础技能,无论专业方向如何。
为什么Docker重要
Docker解决了”在我机器上能运行”的问题。Docker容器包含应用程序、其运行时、库、环境变量和配置——运行所需的一切。开发者机器、CI/CD流水线和生产服务器都运行相同的容器镜像。操作系统、安装软件和系统配置的差异消失了。
核心概念
镜像(Image):从Dockerfile构建的只读模板(类比:蓝图)。容器(Container):镜像的运行实例(类比:根据蓝图建造的建筑)。Dockerfile:包含构建镜像指令的文本文件。Docker Hub:公共镜像仓库(nginx、postgres、python、node都作为基础镜像可用)。docker-compose:在YAML文件中定义多容器应用程序的工具。
你的第一个容器
安装Docker Desktop(Mac/Windows)或Docker Engine(Linux)。运行:docker run -d -p 8080:80 nginx。这会拉取官方nginx镜像,启动容器,并将容器内部的80端口映射到你机器的8080端口。在浏览器中打开localhost:8080——你会看到nginx欢迎页面。你在几秒内运行了一个Web服务器,没有在本地安装nginx。
构建你自己的镜像
在你的项目目录中创建Dockerfile:
FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "app.py"]
运行docker build -t my-app .来构建它。运行docker run -p 5000:5000 my-app来启动它。你的Python应用在包含所有依赖项的容器中运行。
用于多服务的docker-compose
大多数应用程序需要与应用一起运行数据库。docker-compose.yml定义两个服务。docker compose up启动所有服务;docker compose down停止它们。这取代了在本地机器上安装PostgreSQL、Redis或任何其他服务的需求。




