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. 典型部署流程
- 通过 Docker 构建镜像。
- 推送到镜像仓库。
- 使用
kubectl apply创建 Deployment/Service。 - 通过
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. 常见实践
- 使用
readinessProbe和livenessProbe提升可用性。 - 让镜像更轻量以缩短启动时间。
- 通过
ConfigMap将配置与镜像解耦。
8. 过渡注意事项
- Kubernetes 不再依赖 Docker 引擎,建议使用 Containerd 或 CRI-O。
- 但镜像格式仍兼容 Docker 镜像。
- 本质上是从单机容器运行向集群调度的扩展。
DockerKubernetes容器编排