Docker Swarm 集群 微服务部署

本章主要内容:
一个web应用前后端分离的微服务(serverWork1+serverWork2 +web),+mysql,+redis
说明:serverWork1和serverWork2会互相调用,web会调用调用serverWork1和serverWork2;serverWork1,serverWork2 ,web,mysql,redis分别在不同的docker镜像;
使用docker swarm 部署,实现负载均衡。
使用两台机器:192.168.1.206(管理机),192.168.1.207(节点机)
废话不多说开始吧。


1.安装docker
apt-get update
apt-get install docker
apt-get install docker.io


2.下载镜像
docker pull mysql
docker pull redis
docker pull serverWork1的地址
docker pull serverWork2的地址
docker pull web的地址


搭建Docker Swarm集群


安装Swarm
sudo docker pull swarm
在使用Swarm进行集群管理之前,需要先把准备加入集群的所有的节点的docker deamon的监听端口修改为0.0.0.0:2375,可以直接使用 sudo docker –H tcp://0.0.0.0:2375 &命令,也可以在配置文件中修改
sudo vim /etc/default/docker
在文件的最后面添加下面这句
DOCKER_OPTS="-H 0.0.0.0:2375 –H unix:///var/run/docker.sock"


sudo vim /lib/systemd/system/docker.service
修改ExecStart项为如下:
ExecStart=/usr/bin/docker daemon -H 0.0.0.0:2375 -H unix:///var/run/docker.sock
重新载入配置,使修改生效。
$sudo systemctl daemon-reload
重启docker。
$sudo systemctl restart docker
查看是否修改成功。
$ps aux | grep "docker"
出现如下信息,表明修改成功。
root 2854 2.8 0.1 561364 38104 ? Ssl 19:15 0:00 /usr/bin/docker daemon -H 0.0.0.0:2375 -H unix:///var/run/docker.sock




创建集群
使用206作为管理节点
docker swarm init  --advertise-addr 192.168.1.206


docker swarm join \
    --token SWMTKN-1-1xobq0blg2u20odrqseybgw3nh6vka8f8gvczxxipzty197ep1-dsijidy25c1yzzacwn7wmx1gn \
    192.168.1.206:2377



将上面红色的语句贴到所有的节点服务器中 


使用:docker node ls 列出所有节点如果有两台你就成功了。




服务启动:
创建网络
docker network create --driver overlay --subnet 192.168.1.0/24 --opt encrypted mynetworker 


查看network 信息
docker network inspect mynetworker 


启动数据库
docker service create --replicas 1 --network mynetworker -p 3306:3306 -e MYSQL_ROOT_PASSWORD='zy123!@#' --name rds mysql:latest docker-entrypoint.sh --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci 


启动redis
docker service create --replicas 1 --network mynetworker -p 6379:6379  --name kvs redis:latest 


MySQL和redis不建议使用以上启动方式,建议使用docker run


启动后端(每个服务都启动两个副本)
docker service create --replicas 2 --network mynetworker -p 8080 --name serverWork1 serverWork1


docker service create --replicas 2 --network mynetworker -p 8080 --name serverWork2 serverWork2


启动前端
docker service create --replicas 1 --network mynetworker -p 8001:80 --name web web


至此docker swarm 集群服务就搭建好了
可以分别在206和207上使用 docker ps 查看容器分布情况

你可能感兴趣的:(java,docker,swarm,集群,微服务)