容器领域必学的黄金组合
# 一、先说结论(怎么学最不痛苦)
- 顺序一定是:Docker → Kubernetes(K8s)
- Docker 是「怎么把程序装进盒子」
- K8s 是「怎么管理一堆盒子」
没 Docker,K8s 基本学不懂。
# 二、Docker 教程(入门 → 实战)
# 1️⃣ Docker 是啥(一句话版)
- 把程序 + 运行环境打包成一个 Image
- 运行起来就是 Container
- 不再怕「在我电脑能跑」
# 2️⃣ Docker 必学核心概念(面试&实战)
| 概念 | 一句话 |
|---|---|
| Image | 程序的「安装包」 |
| Container | 运行中的 Image |
| Dockerfile | 怎么构建 Image |
| Volume | 数据持久化 |
| Network | 容器之间通信 |
| Registry | 镜像仓库(Docker Hub) |
# 3️⃣ Docker 入门实操(必须自己敲)
# 1. 拉镜像
docker pull nginx
# 2. 运行容器
docker run -d -p 8080:80 nginx
# 3. 看运行状态
docker ps
# 4. 停止容器
docker stop <container_id>
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
浏览器访问 👉 http://localhost:8080
# 4️⃣ Dockerfile(重点‼️)
最小可用示例(Python)
FROM python:3.10-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "app.py"]
1
2
3
4
5
6
2
3
4
5
6
构建 & 运行:
docker build -t myapp .
docker run -p 5000:5000 myapp
1
2
2
👉 这一步是 Docker 分水岭
# 5️⃣ Docker 进阶(学到这已经能干活)
多容器:
docker-compose数据持久化:
volume / bind mount镜像优化:multi-stage build
常见坑:
- 端口没暴露
- 容器一启动就退出
- 镜像太大(>1GB)
# 三、Kubernetes(K8s)教程(重点🔥)
# 1️⃣ K8s 是干嘛的?
一句话:
自动部署、扩缩容、重启、负载均衡 Docker 容器
当你有:
- 多台服务器
- 多个服务
- 高可用要求 👉 K8s 才有意义
# 2️⃣ K8s 核心概念(一定要背)
| 概念 | 人话解释 |
|---|---|
| Pod | 最小部署单元(1~多个容器) |
| Node | 一台机器 |
| Cluster | 一堆 Node |
| Deployment | 管理 Pod(副本、升级) |
| Service | 给 Pod 一个稳定入口 |
| ConfigMap | 配置 |
| Secret | 密码 |
| Ingress | HTTP 入口 |
# 3️⃣ 本地学习环境(推荐)
✅ 新手首选:
minikube或kind
brew install minikube
minikube start
1
2
2
# 4️⃣ 第一个 K8s 应用(超重要)
deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp
spec:
replicas: 2
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: myapp
image: nginx
ports:
- containerPort: 80
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
kubectl apply -f deployment.yaml
kubectl get pods
1
2
2
# 5️⃣ Service(让外部能访问)
apiVersion: v1
kind: Service
metadata:
name: myapp-service
spec:
type: NodePort
selector:
app: myapp
ports:
- port: 80
targetPort: 80
nodePort: 30007
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 6️⃣ 你真正需要掌握的 K8s 能力
- Pod 为啥会挂?(
kubectl describe pod) - 日志怎么看?(
kubectl logs) - 滚动更新
- HPA 自动扩容
- 健康检查(liveness / readiness)
- 配置和密钥管理
# 四、Docker + K8s 学习路线(照着走)
# 🟢 第一阶段(3–5 天)
- Docker 基本命令
- Dockerfile
- 跑一个自己的 Web 服务
# 🟡 第二阶段(5–7 天)
- docker-compose
- K8s 基础概念
- Deployment + Service
# 🔵 第三阶段(进阶)
- Helm
- CI/CD(GitHub Actions)
- 云上 K8s(EKS / GKE / ACK)
# 五、强烈推荐的学习资源(高质量)
# 📘 官方(必看)
- Docker Docs
- Kubernetes 官方文档(中文有)
# 🎥 视频(适合中文)
- B站:尚硅谷 Docker / K8s
- 黑马程序员 Kubernetes
# 🧪 实战项目
- Spring Boot / FastAPI + Docker + K8s
- 微服务部署
上次更新: 2026/01/27, 09:17:11