简介
微服务:将一个原本独立的系统拆分成多个小型服务,这些小型服务都在各自独立的进程中运行,服务之间通过基于HTTP/HTTPS协议的RESTful API进行通信协作,也可以通过RPC协议进行通信协作。
SpringCloud:提供一套完整的微服务框架,让开发者可以快速构建一个分布式系统,包括配置管理,服务治理,熔断机制,智能路由等等。
Docker Swarm:Swarm是Docker内置的集群管理工具
环境
Docker:18.09.0
IntelliJ IDEA :2018.1 (Ultimate Edition)
Nexus:sonatype/nexus3
三台CentOS7虚拟机:CentOS-7-x86_64(192.168.30.205,192.168.30.206,192.168.30.207)
流程:
本地开发SpringCloud项目,构建docker镜像,推送到Nexus私服(192.168.30.205),swarm 创建2个节点 192.168.30.206(管理节点),
192.168.30.207(工作节点),编排并创建集群服务,自动从私服拉取镜像并运行
CentOS7安装Docker
参考 https://www.cnblogs.com/yufeng218/p/8370670.html
Docker搭建Nexus私服(192.168.30.205)
在公司里一般会用Nexus搭建一个私服,然后将内部的代码上传到私服的Maven仓库,供他人使用。Nexus从3.0版本开始支持创建Docker镜像仓库。
获取nexus镜像
docker pull sonatype/nexus3
创建挂载目录
mkdir /var/lib/nexus-data
启动nexus的时候可能会遇到权限问题,直接赋予最高权限
chmod 777 /var/lib/nexus-data
启动nexus3,8081端口是nexus的访问端口,5000端口是用于后面docker镜像仓库的访问
docker run -d \
--name=nexus3 \
--restart=always \
-p 8081:8081 -p 5000:5000 \
-v /var/lib/nexus-data:/nexus-data \
sonatype/nexus3
-
第一次启动较慢,成功后访问 http://192.168.30.205:8081,进入nexus主页。
-
配置docker镜像仓库,管理员登录默认 admin/admin123,依次点击 ⚙→ Repositories → Create repository → docker (hosted),输入仓库名称,选择HTTP方式,填写端口号,这个端口号就是用来push镜像的,其他默认,点击Create repository按钮,我们的docker镜像仓库就创建好了。
在Browse菜单可以看到刚刚建立的仓库,以后的docker镜像都会上传都这里