【Docker】创建 swarm 集群

目录

[1. 更改防火墙设置](#1. 更改防火墙设置)

[2. 安装 Docker 组件](#2. 安装 Docker 组件)

[3. 启动 Docker 服务,并检查服务状态。](#3. 启动 Docker 服务,并检查服务状态。)

[4. 修改配置文件,监听同一端口号。](#4. 修改配置文件,监听同一端口号。)

[5. 下载 Swarm 组件](#5. 下载 Swarm 组件)

[6. 创建集群,加入节点](#6. 创建集群,加入节点)

[7. 启动集群](#7. 启动集群)

[8. 查询集群节点信息](#8. 查询集群节点信息)

[9. 查询集群具体信息](#9. 查询集群具体信息)

[10. 查询集群活动状态](#10. 查询集群活动状态)

[11. 在集群内部署应用,并查询集群信息。](#11. 在集群内部署应用,并查询集群信息。)

[12. 查询集群内部容器活动状态。](#12. 查询集群内部容器活动状态。)

[13. 在集群内创建应用,实现自动部署。](#13. 在集群内创建应用,实现自动部署。)


1. 更改防火墙设置

bash 复制代码
hostnamectl set-hostname node1  # 设置主机名为"node1" 需要重启虚拟机生效

iptables -F   # 清除防火墙规则中的所有过滤规则

iptables -X   # 删除防火墙中用户定义的链

iptables -Z   # 将防火墙计数器归零,用于统计流量

/usr/sbin/iptables-save  # 保存当前的防火墙规则
bash 复制代码
vi /etc/sysctl.conf
bash 复制代码
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0
"/etc/sysctl.conf" 8L, 318C written
# sysctl -p
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0

2. 安装 Docker 组件

bash 复制代码
yum install -y docker-io

3. 启动 Docker 服务,并检查服务状态。

bash 复制代码
systemctl start docker

systemctl status docker

4. 修改配置文件,监听同一端口号。

bash 复制代码
vi /usr/lib/systemd/system/docker.service

修改之前可以先备份一下!添加下图所示配置

bash 复制代码
/usr/bin/dockerd-current -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock\

修改配置以后重启服务,如果重启失败,那么就是配置文件写错了,再仔细检查一下。

bash 复制代码
systemctl daemon-reload

systemctl restart docker

netstat -anpl | grep 2375
bash 复制代码
sudo systemctl restart docker

5. 下载 Swarm 组件

bash 复制代码
docker pull swarm
bash 复制代码
cd /root

6. 创建集群,加入节点

bash 复制代码
vi cluster 
bash 复制代码
192.168.9.10:2375 # ip地址用虚拟机的
192.168.9.13:2375 # 克隆第一台虚拟机

7. 启动集群

bash 复制代码
docker run -d -p 2376:2375 -v $(pwd)/cluster:/tmp/cluster swarm manage file:///tmp/cluster

8. 查询集群节点信息

bash 复制代码
docker run --rm -v $(pwd)/cluster:/tmp/cluster --privileged swarm list file:///tmp/cluster

1. 获取加入集群所需的令牌!!

bash 复制代码
docker swarm join-tocken worker

2. 复制上面的输出,在第二台虚拟机执行加入命令

bash 复制代码
docker swarm join --token SWMTKN-1-30wggx60wr9qu1inn66kthwl6wtoxhbclhsv1nbzb73bbf6m8a-9a57fl4du8bhv5sfo48rz0bwn 192.168.9.10:2377

3. 查看第一台虚拟机

bash 复制代码
​​​​​​​docker node ls

9. 查询集群具体信息

bash 复制代码
docker -H 192.168.9.10:2375 info

10. 查询集群活动状态

bash 复制代码
docker ps -a

11. 在集群内部署应用,并查询集群信息。

bash 复制代码
docker -H 192.168.9.10:2375 run -idt busybox
bash 复制代码
 docker -H 192.168.9.10:2375 info

12. 查询集群内部容器活动状态。

bash 复制代码
docker -H 192.168.9.10:2375 ps -a

13. 在集群内创建应用,实现自动部署。

bash 复制代码
docker -H 192.168.9.10:2375 run -idt busybox
bash 复制代码
docker -H 192.168.9.10:2375 run -idt busybox
bash 复制代码
docker -H 192.168.9.10:2375 ps -a
相关推荐
fetasty6 小时前
rustfs加picgo图床搭建
docker
蝎子莱莱爱打怪1 天前
GitLab CI/CD + Docker Registry + K8s 部署完整实战指南
后端·docker·kubernetes
chlk1231 天前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑1 天前
Ubuntu系统安装CodeX出现问题
linux·后端
改一下配置文件1 天前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
xy123061 天前
OpenStack Train 部署实战(三)控制节点--keystone服务
centos·openstack
深紫色的三北六号2 天前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash2 天前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)
小p2 天前
docker学习7:docker 容器的通信方式
docker
小p2 天前
docker学习5:提升Dockerfile水平的5个技巧
docker