轻松玩转云时代的容器化应用部署

一、容器化技术概述

容器化技术通过轻量级隔离机制封装应用及其依赖,实现跨环境的一致性部署。核心优势包括:

  • 环境一致性(开发/测试/生产环境统一)
  • 资源高效利用(共享操作系统内核)
  • 快速启动(秒级部署)

二、Docker:基础容器技术

核心组件

  • 1. Docker Engine:容器运行时
  • 2. Docker Compose:多容器编排
  • 3. Docker Swarm:原生集群管理

标准工作流程

1. 创建Dockerfile(环境定义文件)

# 基于官方Python镜像
FROM python:3.8-slim

# 设置工作目录
WORKDIR /app

# 复制本地文件到容器
COPY . .

# 安装依赖(清理缓存)
RUN pip install --no-cache-dir -r requirements.txt

# 设置容器启动命令
CMD ["python", "app.py"]

2. 构建镜像

docker build -t my-python-app .

3. 运行容器

docker run -d -p 5000:5000 my-python-app

4. 多容器管理(docker-compose.yml)

version: '3.8'
services:
   web:
       image: my-python-app
       ports:
           - "5000:5000"
   redis:
       image: redis:alpine
       volumes:
           - redis-data:/data
volumes:
   redis-data:

启动命令:docker-compose up -d


三、Kubernetes:容器编排平台

核心概念

  • Pod:最小部署单元
  • Deployment:应用副本管理
  • Service:网络访问入口

操作流程

1. 创建本地集群

minikube start

2. 定义部署文件(deployment.yaml)

apiVersion: apps/v1
kind: Deployment
metadata:
   name: my-app
spec:
   replicas: 3
   selector:
       matchLabels:
           app: my-app
   template:
       metadata:
           labels:
               app: my-app
       spec:
           containers:
           - name: app-container
               image: my-python-app
               ports:
               - containerPort: 5000
               resources:
                   limits:
                       memory: "128Mi"
---
apiVersion: v1
kind: Service
metadata:
   name: my-app-service
spec:
   selector:
       app: my-app
   ports:
       - protocol: TCP
           port: 80
           targetPort: 5000
   type: LoadBalancer

3. 部署应用

kubectl apply -f deployment.yaml

4. 管理操作

kubectl get pods  # 查看运行状态
kubectl scale deployment my-app --replicas=5  # 调整副本数


四、OpenShift:企业级Kubernetes平台

核心功能

  • 集成CI/CD流水线
  • 增强安全策略(RBAC/SCC)
  • 开发者自助服务门户

典型操作

# 从源代码构建应用
oc new-app python:3.8~https://github.com/your-repo/app.git

# 创建外部访问路由
oc expose service/app

# 实时查看构建日志
oc logs -f bc/app


五、Rancher:多集群管理平台

部署与管理

1. 安装服务

docker run -d --restart=unless-stopped \
   -p 80:80 -p 443:443 \
   rancher/rancher:latest

2. 核心能力:

  • 统一管理多个Kubernetes集群
  • 可视化监控仪表盘
  • 应用商店(预置MySQL/Prometheus等)


六、技术选型建议

技术适用场景特点
Docker单机开发/简单应用学习成本低,快速部署
Kubernetes生产环境/微服务架构自动扩缩容,高可用保障
OpenShift企业级安全合规需求内置CI/CD,强化安全控制
Rancher混合云/多集群管理集中管控,简化运维