在Ubuntu上实现Docker容器编排主要有以下两种常用方式:
安装Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/latest/download/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 ps
docker-compose stop
docker-compose up -d --scale web=3
初始化Swarm集群
在管理节点执行:
docker swarm init --advertise-addr <管理节点IP>
将输出的token
用于工作节点加入集群:
docker swarm join --token <token> <管理节点IP>:2377
部署服务
docker service create --name nginx --replicas 3 --publish 8080:80 nginx:latest
--replicas
:指定副本数--publish
:映射端口--network
:指定覆盖网络(需提前创建)管理集群
docker service ls
docker service update --image nginx:1.21 nginx
docker service scale nginx=5
安装Kubernetes组件
kubeadm
、kubelet
、kubectl
:sudo apt update
sudo apt install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
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
部署网络插件
例如Calico:
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
部署应用
通过YAML文件定义Deployment和Service,例如:
kubectl apply -f nginx-deployment.yaml
选择建议: