简介:本文聚焦Docker容器与容器云部署,系统梳理从环境准备到运维优化的全流程,帮助开发者、架构师及技术团队掌握容器化应用的高效部署方法,提升资源利用率与系统稳定性,降低运维成本。
Docker容器技术通过操作系统内核的命名空间(Namespace)与控制组(Cgroup)实现资源隔离,为应用提供轻量级、可移植的运行环境。容器云则基于容器编排工具(如Kubernetes)实现多节点资源调度、服务发现与自动化运维。本文将围绕Docker容器单机部署与容器云集群部署展开,帮助读者掌握从环境搭建到服务上线的完整流程,适用于以下场景:
docker logs或第三方工具(如ELK)收集日志,使用Prometheus监控容器资源。kubectl)。
# Ubuntu示例sudo apt update && sudo apt install docker-ce docker-ce-cli containerd.io
docker --versiondocker run hello-world
# 主节点初始化kubeadm init --pod-network-cidr=10.244.0.0/16# 工作节点加入集群kubeadm join <主节点IP>:6443 --token <token>
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
docker pull nginx:latest
docker run -d --name my-nginx -p 80:80 -v /host/path:/usr/share/nginx/html nginx
-d:后台运行;-p 80:80:端口映射;-v:数据卷挂载。
curl http://localhost
nginx-deployment.yaml):
apiVersion: apps/v1kind: Deploymentmetadata:name: nginx-deploymentspec:replicas: 3selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:latestports:- containerPort: 80
kubectl apply -f nginx-deployment.yaml
# nginx-service.yamlapiVersion: v1kind: Servicemetadata:name: nginx-servicespec:selector:app: nginxports:- protocol: TCPport: 80targetPort: 80type: LoadBalancer
kubectl apply -f nginx-service.yaml
kubectl get svc nginx-service
-e传递,例如-e ENV_VAR=value。--memory和--cpus限制容器资源使用。nodeSelector或affinity指定节点。
apiVersion: autoscaling/v2kind: HorizontalPodAutoscalermetadata:name: nginx-hpaspec:scaleTargetRef:apiVersion: apps/v1kind: Deploymentname: nginx-deploymentminReplicas: 2maxReplicas: 10metrics:- type: Resourceresource:name: cputarget:type: UtilizationaverageUtilization: 50
curl或浏览器访问容器服务。docker stats查看容器资源占用。docker logs <容器ID>。kubectl logs <Pod名称>。docker images。docker logs <容器ID>。kubectl describe node <节点名>。kubectl get events --sort-by='.metadata.creationTimestamp'。ufw或iptables)。kubectl get pods -n kube-system。
livenessProbe:httpGet:path: /healthzport: 80initialDelaySeconds: 30periodSeconds: 10
resources:requests:cpu: "100m"memory: "128Mi"limits:cpu: "500m"memory: "512Mi"
本文从单机容器部署到容器云集群部署,系统梳理了Docker技术的核心流程与关键配置。通过环境准备、资源规划、配置管理与监控运维的完整实践,读者可快速掌握容器化应用的部署方法,提升系统稳定性与资源利用率。后续可进一步探索多集群管理、服务网格(如Istio)等高级场景。