Docker 入门:5 分钟理解容器(小白也能懂)

"在我电脑上能跑"——这句程序员最怕的话,Docker 一招解决。本文零基础讲清楚 Docker 是什么 + 5 分钟上手。

一、Docker 是什么?1 句话

Docker = 把"应用 + 环境"打包成"集装箱"——任何机器上一键运行。 生活例子:

  • 不用 Docker:换电脑 → 装 Python → 装依赖 → 配置 → 报错
  • 用 Docker:换电脑 → docker run → 完成

二、为什么 2025 年必学 Docker?

调查数据(2024 Stack Overflow):
- 58% 开发者用 Docker
- 73% 企业生产用 Docker
- 90% 云原生项目用 Docker

→ Docker = 后端必会 / 部署必会

三、3 个核心概念

概念 1:镜像(Image)

镜像 = 应用的"模板"(如"Python 3.12 + Flask 2.0 + 代码")

概念 2:容器(Container)

容器 = 镜像的"运行实例"(如"启动 3 个 Flask 容器")

概念 3:Dockerfile

Dockerfile = 构建镜像的"配方"(如"基于 Python 3.12,复制代码,安装依赖,运行")

四、5 分钟安装

# macOS / Windows
下载 Docker Desktop:https://www.docker.com/products/docker-desktop

# Linux
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

验证:

docker --version
# Docker version 24.0.0

五、5 分钟第一个容器

步骤 1:跑一个 nginx

docker run -d -p 8080:80 --name my-nginx nginx
# -d:后台运行
# -p 8080:80:把主机 8080 映射到容器 80
# --name:命名
# nginx:镜像名

打开浏览器 http://localhost:8080,看到 nginx 欢迎页 = 成功!

步骤 2:看所有容器

docker ps           # 运行中
docker ps -a        # 全部(含停止的)

步骤 3:进容器

docker exec -it my-nginx bash
# -i:交互
# -t:终端
# bash:进容器后运行 bash

步骤 4:停止 / 删除

docker stop my-nginx
docker rm my-nginx

六、第一个 Dockerfile

创建 Dockerfile:

# 基于 Python 3.12 镜像
FROM python:3.12-slim

# 设置工作目录
WORKDIR /app

# 复制依赖文件
COPY requirements.txt .

# 安装依赖
RUN pip install -r requirements.txt

# 复制代码
COPY . .

# 暴露端口
EXPOSE 8000

# 启动命令
CMD ["python", "main.py"]

构建镜像:

docker build -t my-app .
# -t my-app:标签
# .:当前目录

运行:

docker run -d -p 8000:8000 my-app

七、5 大实用命令

命令 1:docker pull(下载镜像)

docker pull python:3.12

命令 2:docker run(运行容器)

docker run -d -p 80:80 nginx

命令 3:docker ps(查看运行中)

docker ps

命令 4:docker stop / docker rm

docker stop <容器名>
docker rm <容器名>

命令 5:docker logs(看日志)

docker logs <容器名>
docker logs -f <容器名>  # 实时跟踪

八、3 大常见场景

场景 1:本地开发环境

以前:
- 装 Python 3.12
- 装依赖 pip install xxx
- 配数据库
- 配 Redis

现在(Docker):
- 1 个 docker-compose.yml
- docker-compose up
- 30 秒完成

场景 2:部署到服务器

以前:
- 登录服务器
- 装环境
- 拉代码
- 启服务

现在(Docker):
- docker pull image
- docker run
- 30 秒部署

场景 3:CI/CD

代码 push → GitHub Actions → docker build → docker push → 自动部署

九、3 个常见错误

错误 1:忘记 .dockerignore

创建 .dockerignore:

.git
node_modules
__pycache__
.env
*.log

错误 2:镜像太大

# 错(镜像 1.5 GB)
FROM python:3.12

# 对(镜像 200 MB)
FROM python:3.12-slim

错误 3:以 root 运行

# 加用户
RUN useradd -m appuser
USER appuser

十、6 个月 Docker 学习路径

Month 1:基础
□ 安装 Docker Desktop
□ 跑 5 个容器
□ 写第一个 Dockerfile

Month 2:进阶
□ 学 docker-compose
□ 多容器应用
□ 容器网络

Month 3:实战
□ 部署 1 个真实应用
□ 学 Docker Hub
□ 学镜像优化

Month 4-5:高级
□ 学 Kubernetes
□ 多机部署
□ 监控告警

Month 6:专家
□ CI/CD 流水线
□ GitOps
□ 大规模部署

反思:Docker 是后端必会

不夸张地说:

不会 Docker 的后端 = 2025 年不会用 Excel——会被淘汰。

立即开始:今天装 Docker + 跑第一个容器 = 你已经会 Docker 的 50%。 未来 5 年,Docker = 后端工程师的"Git"——必会。