Skip to content

一、先说结论(怎么学最不痛苦)

  • 顺序一定是: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 入门实操(必须自己敲)

bash
# 1. 拉镜像
docker pull nginx

# 2. 运行容器
docker run -d -p 8080:80 nginx

# 3. 看运行状态
docker ps

# 4. 停止容器
docker stop <container_id>

浏览器访问 👉 http://localhost:8080

4️⃣ Dockerfile(重点‼️)

最小可用示例(Python)

dockerfile
FROM python:3.10-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "app.py"]

构建 & 运行:

bash
docker build -t myapp .
docker run -p 5000:5000 myapp

👉 这一步是 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密码
IngressHTTP 入口

3️⃣ 本地学习环境(推荐)

新手首选:

  • minikubekind
bash
brew install minikube
minikube start

4️⃣ 第一个 K8s 应用(超重要)

deployment.yaml

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
bash
kubectl apply -f deployment.yaml
kubectl get pods

5️⃣ Service(让外部能访问)

yaml
apiVersion: v1
kind: Service
metadata:
  name: myapp-service
spec:
  type: NodePort
  selector:
    app: myapp
  ports:
    - port: 80
      targetPort: 80
      nodePort: 30007

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
  • 微服务部署