Shaw0xyz 发表于 2024-5-26 12:53:53

如何在 Ubuntu 16.04 上使用 Docker Swarm 和 DigitalOcean 创建 Docker 容器集群

本帖最后由 Shaw0xyz 于 2024-5-26 12:55 编辑

Docker Swarm 是 Docker 提供的原生集群管理工具,能够轻松地将多个 Docker 主机组合成一个集群。DigitalOcean 是一个流行的云服务提供商,提供简便的虚拟机管理。本文将详细介绍如何在 Ubuntu 16.04 上使用 Docker Swarm 和 DigitalOcean 创建 Docker 容器集群。

1. 准备工作

1.1 安装 Docker

在所有节点上安装 Docker。首先,更新现有的软件包索引。


sudo apt-get update


接着,安装 Docker。


sudo apt-get install -y docker.io


安装完成后,启动 Docker 并设置开机自启动。


sudo systemctl start docker
sudo systemctl enable docker


1.2 创建 DigitalOcean 账户和 API 密钥

如果还没有 DigitalOcean 账户,请前往 (https://www.digitalocean.com) 注册账户。注册后,生成一个 API 密钥,用于通过 DigitalOcean API 创建和管理虚拟机(Droplets)。

1.3 安装 Docker Machine

Docker Machine 是 Docker 提供的用于在多种环境中创建和管理 Docker 主机的工具。首先,下载 Docker Machine 的二进制文件。


curl -L <a href="https://github.com/docker/machine/releases/download/v0.16.2/docker-machine-" target="_blank">https://github.com/docker/machin ... 6.2/docker-machine-</a>$(uname -s)-$(uname -m) > /tmp/docker-machine

接着,将 Docker Machine 移动到 `/usr/local/bin` 目录并赋予执行权限。


sudo mv /tmp/docker-machine /usr/local/bin/docker-machine
sudo chmod +x /usr/local/bin/docker-machine


2. 创建 Docker Swarm 集群

2.1 使用 Docker Machine 创建 Droplets

利用 Docker Machine 和 DigitalOcean API 密钥创建 Droplets。


docker-machine create --driver digitalocean --digitalocean-access-token YOUR_DIGITALOCEAN_API_TOKEN manager
docker-machine create --driver digitalocean --digitalocean-access-token YOUR_DIGITALOCEAN_API_TOKEN worker1
docker-machine create --driver digitalocean --digitalocean-access-token YOUR_DIGITALOCEAN_API_TOKEN worker2


2.2 初始化 Swarm 管理节点

连接到管理节点并初始化 Swarm 集群。


docker-machine ssh manager
docker swarm init --advertise-addr $(docker-machine ip manager)


2.3 添加工作节点到 Swarm 集群

获取管理节点上的 Swarm 加入令牌。


docker swarm join-token worker


记下输出的命令,然后连接到每个工作节点并运行该命令。


docker-machine ssh worker1
docker swarm join --token SWMTKN-1-0aa...
docker-machine ssh worker2
docker swarm join --token SWMTKN-1-0aa...


2.4 验证集群状态

在管理节点上,运行以下命令验证集群状态。


docker node ls


3. 部署和管理服务

3.1 部署第一个服务

在管理节点上部署一个简单的服务。


docker service create --name hello-world --replicas 3 nginx


3.2 检查服务状态

查看服务的状态和分布情况。


docker service ls
docker service ps hello-world


3.3 扩展服务

可以轻松地扩展服务的副本数量,例如将副本数量增加到 5。


docker service scale hello-world=5


4. 维护和管理集群

4.1 更新服务

服务部署后,可以滚动更新服务镜像或配置。


docker service update --image nginx:latest hello-world


4.2 删除服务

删除不再需要的服务。


docker service rm hello-world


4.3 节点维护

将节点标记为不可调度,进行维护。


docker node update --availability drain worker1


维护完成后,恢复节点的调度状态。


docker node update --availability active worker1


5. 总结

通过本文的教程,您应该已经掌握了如何在 Ubuntu 16.04 上使用 Docker Swarm 和 DigitalOcean 创建 Docker 容器集群的基本步骤。从安装 Docker 和 Docker Machine,到创建 DigitalOcean Droplets,初始化 Swarm 集群,以及部署和管理服务,每一步都进行了详细的介绍。希望这些内容能够帮助您顺利构建并管理自己的 Docker Swarm 集群。

页: [1]
查看完整版本: 如何在 Ubuntu 16.04 上使用 Docker Swarm 和 DigitalOcean 创建 Docker 容器集群