docker swarm 项目部署

1.准备环境

例:此处的服务器为阿里云的ECS云服务器,linux系统,centos 7.8 操作系统

IP:47.111.249.146(外网)172.16.45.66(内网) 主机名:manager 担任角色:swarm manager

IP:116.62.27.188(外网)172.16.45.78(内网) 主机名:work01担任角色:swarm node

IP:118.31.102.40(外网)172.16.45.77(内网) 主机名:work02 担任角色:swarm node

2.修改主机名

命令为:hostnamectl set-hostname  主机名  也可以使用其他方法进行修改,个人认为这种方法方便快捷

示例:[root@manager ~]# hostnamectl set-hostname manager

注:三台服务器都需要进行操作

3.关闭防火墙

命令为:systemctl stop firewalld

示例:[root@manager ~]# systemctl stop firewalld

注:三台服务器都需要进行操作

4.安装docker

命令为:yum -y install docker

示例:[root@manager ~]# yum -y install docker

注:三台服务器都需要安装docker

5.创建swarm并添加node节点

示例:[root@manager ~]# docker swarm init --advertise-addr 172.16.45.66

如果报错:Error response from daemon: This node is already part of a swarm. Use "docker swarm leave" to leave this swarm and join another one.请执行docker swarm leave -f 命令

示例:[root@manager ~]# docker swarm leave -f

添加node节点到swarm集群

示例:[root@worker01 ~]# docker swarm join --token SWMTKN-1-42coy1f4xtk987t6w04h6p53m7z12xzis6sjwvkd73ypmwl76k-1u0c37oyi9bz66e6wqfsr6xuh 172.16.45.66:2377

示例:[root@worker02 ~]# docker swarm join --token SWMTKN-1-42coy1f4xtk987t6w04h6p53m7z12xzis6sjwvkd73ypmwl76k-1u0c37oyi9bz66e6wqfsr6xuh 172.16.45.66:2377

查看集群的状态

示例:[root@manager ~]# docker node ls

创建网络

示例:[root@manager ~]# docker network create -d overlay nginx_net

查看创建的网络

示例:[root@manager ~]# docker network ls

docker swarm 项目部署_第1张图片

创建服务

我们是jar 包构建dockerfile 来启动

这里以nginx  为例,先从镜像仓库拉nginx镜像

[root@manager ~]# docker pull nginx

docker swarm 项目部署_第2张图片

示例:[root@manager ~]# docker service create --replicas 1 --network nginx_net --name my_nginx -p 80:80 nginx

 

扩展服务

 示例:[root@manager ~]# docker service scale my_nginx=3 

 docker swarm 项目部署_第3张图片

查看运行的服务

示例: docker service ps my_nginx

添加node节点成为备用管理节点

示例:[root@manager ~]# docker node promote worker01

查看swarm manager 的令牌

示例:[root@manager ~]# docker swarm join-token manager

 

剔除worker节点

示例:[root@manager ~]# docker node rm --force worker02

 

下线的worker节点再次上线

示例:[root@worker02 ~]# docker swarm join --token SWMTKN-1-42coy1f4xtk987t6w04h6p53m7z12xzis6sjwvkd73ypmwl76k-ahjz9y3o934pxr9jfqqbqizkv 172.16.45.66:2377

 

节点状态为drain 不再处理请求

 示例:[root@manager ~]# docker node update --availability drain worker02

 

更新状态再加回来

示例:[root@manager ~]# docker node update --availability active worker02

 

附:

命令:

docker swarm:集群管理,子命令有init, join, leave, update。(docker swarm --help查看帮助)

docker service:服务创建,子命令有create, inspect, update, remove, tasks。(docker service--help查看帮助)

docker node:节点管理,子命令有accept, promote, demote, inspect, update, tasks, ls, rm。(docker node --help查看帮助)

注意:版本尽量保持一致(不要差别太大),否则,worker节点不能作为通讯入口

 

 

 

 

你可能感兴趣的:(docker swarm 项目部署)