SorryToPerson logo
返回
Docker2026-04-15·8 分钟

Docker 与 Kubernetes 入门

说明 Docker 容器与 Kubernetes 集群的基本关系、镜像部署流程与常见实践。

Docker 与 Kubernetes 入门

1. Docker 与 Kubernetes 的关系

  • Docker 负责构建和运行容器镜像。
  • Kubernetes 负责调度、编排和管理容器集群。
  • Kubernetes 集群中的 Pod 通常运行来自 Docker 镜像。

2. 使用 Docker 镜像部署到 Kubernetes

bash
docker build -t myapp:1.0.0 .
docker push registry.example.com/myorg/myapp:1.0.0
kubectl apply -f deployment.yaml
  • 必须将镜像推送到 Kubernetes 可访问的仓库。
  • deployment.yaml 指向镜像地址。

3. 基本 Kubernetes 资源

  • Pod:最小部署单元。
  • Deployment:管理副本数和滚动更新。
  • Service:暴露 Pod 网络。
  • ConfigMap / Secret:配置和敏感信息管理。

4. 典型部署流程

  1. 通过 Docker 构建镜像。
  2. 推送到镜像仓库。
  3. 使用 kubectl apply 创建 Deployment/Service。
  4. 通过 kubectl get pods 检查运行状态。

5. 资源限制与请求

yaml
resources:
  requests:
    cpu: '250m'
    memory: '256Mi'
  limits:
    cpu: '500m'
    memory: '512Mi'
  • 设置资源 requests 让调度器计算需求。
  • 设置 limits 控制单个容器最大消耗。

6. 滚动更新与回滚

bash
kubectl set image deployment/myapp myapp=registry.example.com/myorg/myapp:1.0.1
kubectl rollout status deployment/myapp
kubectl rollout undo deployment/myapp
  • Kubernetes 支持零停机滚动更新。
  • 失败时可回滚到上一个版本。

7. 常见实践

  • 使用 readinessProbelivenessProbe 提升可用性。
  • 让镜像更轻量以缩短启动时间。
  • 通过 ConfigMap 将配置与镜像解耦。

8. 过渡注意事项

  • Kubernetes 不再依赖 Docker 引擎,建议使用 Containerd 或 CRI-O。
  • 但镜像格式仍兼容 Docker 镜像。
  • 本质上是从单机容器运行向集群调度的扩展。
DockerKubernetes容器编排