准备好多台已经安装好docker的机器,没有安装好docker的可以参考我的另一篇关于docker安装文档https://my.oschina.net/qbj/blog/3077245
1. 选择manager节点,并创建集群
随便选择一台机器作为manager节点,在机器上运行:
docker swarm init --advertise-addr 当前机器的IP地址
运行完毕之后,出现如下情况代表成功,并复制红色区域中的命令留有待用:
注:红色区域中的token是集群唯一标识,后续的其它节点机器,都需要通过红色区域中的命令来加入当前集群。
2. 添加集群节点
复制上一步骤中的红色区域中的内容在其它节点机器上执行,运行成功会提示如下信息:
This node joined a swarm as a worker.
所有节点加入完毕之后,可以在主节点上运行如下命令查看节点情况:
docker node ls
4. 部署Portainer
Portainer 为你的docker swarm集群以及docker服务提供了可视化管理。可以管理docker的堆栈,docker的网络,docker服务,docker镜像,docker容器等等,一切靠命令方式执行的都可以去通过Portainer去在界面上去操作管理。
a. 准备docker-stack-manager.yml配置文件
version: "3.2"
services:
#docker集群可视化工具
portainer:
image: portainer/portainer
hostname: portainer
ports:
- "9000:9000"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
- "/data/portainer:/data"
deploy:
replicas: 1
placement:
constraints: [node.role == manager]
resources:
limits:
# cpus: '1'
memory: 1GB
reservations:
# cpus: '0.2'
memory: 512MB
b. 创建文件目录
mkdir -p /data/portainer/
chmod -R 777 /data/portainer/
c. 执行docker-stack-manager.yml文件
docker stack deploy -c docker-stack-manager.yml manager --resolve-image=never
注意:命令必须在docker-stack-manager.yml同目录下执行。执行完毕之后,请稍等片刻,安装需要花费点时间,可以通过在manager上执行以下命令来查看安装进度:
docker service ls
d. 访问界面地址 http://集群IP:9000
e. 开始配置账号密码
f.配置manager节点主机的信息
注意: Name -- 随便写;Endpoint URL -- manager节点的IP:2375; 端口2375是默认端口。如果添加失败,可以尝试如下方法:
执行命令
vim /lib/systemd/system/docker.service
在ExecStart加入:
-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
重启dokcer
systemctl daemon-reload
systemctl restart docker
5. 在各个节点配置私服镜像仓库
在各个节点上私服镜像仓库地址
vim /etc/docker/daemon.json
如果已存在daemon.json,请在原来的基础上加即可,如果有多个,以逗号隔开。配置如下:
{
"insecure-registries": ["私服IP地址1:私服端口","私服IP地址2:私服端口"],
"registry-mirrors": ["https://registry.docker-cn.com"]
}
重启docker服务
systemctl daemon-reload
systemctl restart docker
验证是否成功:
docker info
出现如下显示,即表示成功
注意:每个节点都要按照上述步骤去配置
6.完成第5步之后,需要登录到Portainer,配置私服镜像仓库信息
点击左侧菜单“registries”,点击”Add registry“,选择”custom registry“,输入私服镜像仓库信息,有多个,就添加多次
到此,docker swarm集群搭建已经完成。