在CentOS上进行Docker容器编排主要有以下两种主流方式:
适用场景:快速定义和运行多容器应用,适合开发、测试环境。
核心步骤:
安装Docker Compose
# 通过pip安装(推荐)
sudo yum install -y python-pip
sudo pip install docker-compose
# 或直接下载二进制文件
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
编写docker-compose.yml
文件
定义服务、镜像、端口、环境变量等,示例:
version: '3'
services:
web:
image: nginx:latest
ports: ["80:80"]
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: example
启动/管理容器
# 启动服务(后台运行)
docker-compose up -d
# 停止并删除容器
docker-compose down
# 查看运行状态
docker-compose ps
# 查看日志
docker-compose logs
适用场景:大规模容器集群管理,支持自动化部署、扩缩容和高可用。
核心步骤:
安装Kubernetes组件
使用kubeadm
初始化集群(需至少3个节点):
# 安装基础组件
sudo yum install -y kubelet kubeadm kubectl
sudo systemctl enable kubelet
# 初始化主节点(在主节点执行)
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
配置kubectl
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
部署服务
通过YAML文件定义资源(如Deployment、Service),示例:
# nginx-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
部署命令:
kubectl apply -f nginx-deployment.yaml
管理集群
# 查看节点状态
kubectl get nodes
# 查看Pod状态
kubectl get pods --all-namespaces
# 扩缩容服务
kubectl scale deployment nginx-deployment --replicas=5
# 更新服务镜像
kubectl set image deployment/nginx-deployment nginx=nginx:1.24