我是靠谱客的博主 忧心哈密瓜,最近开发中收集的这篇文章主要介绍spring cloud分布式部署docker+rancher,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

背景:由于spring cloud部署的应用很多,每次重启在虚拟机编写指令需要很多而且每个服务器都需要,解决这一繁琐操作,我们将对应的服务用docker打包,然后rancher运行docker容器,在ranchar图形界面进行操作

1. 首先准备2个环节,分布在linux安装docker,一次执行即可

yum update
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum list docker-ce --showduplicates | sort -r
yum install docker-ce-17.12.0.ce
systemctl start docker
systemctl enable docker

2. 在*1上面安装rancher服务,执行命令,默认安装+运行, 将容器的8080端口 映射到虚拟机8000端口

docker run -d --restart=unless-stopped -p 8000:8080 rancher/server:stable

我们访问一下

3. rancher服务启动好以后,需要物理linux来支持,这就是为什么需要2个linux,在另一个linux,注册相应的服务,供rancher监听,之后rancher会部署到该服务器

将下面的命令在*2服务器执行,就可以将该主机注册到rancher

在*2服务器启动的服务有

如果主机停掉,需要 手动去开启这些服务就可以注册了,本人遇到过哈

 

4. 将spring cloud对应的服务打包成docker,并上传到阿里云

编写Dockerfile

FROM openjdk:8-jre

RUN mkdir /app

COPY iplatform-eureka-1.0.0.jar /app/

CMD java -jar /app/iplatform-eureka-1.0.0.jar

EXPOSE 8761

将jar放在同级目录,执行,docker build -t eureka:latest .   后面有个点哦

首先docker登录,docker login --username=xxxx registry.cn-hangzhou.aliyuncs.com

注册tag,然后push到镜像仓库

docker tag 866b8dc94db6 registry.cn-hangzhou.aliyuncs.com/repo_lh/eureka:1.0
docker push registry.cn-hangzhou.aliyuncs.com/repo_lh/eureka:1.0

这就就将docker打好,然后上传阿里云

5. 在rancher配置镜像地址

添加应用,然后再应用添加各个容器 服务

添加容器服务

这里镜像就是我的阿里云镜像

我们发现会报错,Container should have been running but is in error state. Check logs for more information.: Image [registry.cn-hangzhou.aliyuncs.com/repo_lh/eureka] failed to pull: Error: image repo_lh/eureka:latest not found

是因为我们镜像是需要登录才可以下载的

这里我们就需要在rancher配置镜像库

 

番外:

这个在建立服务的时候才会拉取镜像,如何才能手动去告诉,需要更新镜像,这个后面再说

 

移除, docker rm -f $(sudo docker ps -a)  ,  sudo docker rm -f $(sudo docker ps -qa)可以移除docker容器

如果过程中遇到

ERROR: http://192.168.196.196:8080/v1 is not accessible (Failed to connect to 192.168.196.196 port 8080: No route to host)

可能是防火墙拦截了,需要将端口开通或者将防火墙关闭

遇到

connection refused暂时没有解决,可能是因为安装了rancher:latest,所以要安装stable稳定版,后面再出现该问题再处理

在部署应用过程中,我们起了2个项目,想要分布在2个虚拟机。而不是随机部署容器。

应用部署到指定主机

首先 在 主机1增加标签

io.rancher.service.requested.host.id  =  1

主机2 增加标签

io.rancher.service.requested.host.id  =  2

 

在部署应用的时候,如果想部署到主机1  则应用标签与1相同即可

最后

以上就是忧心哈密瓜为你收集整理的spring cloud分布式部署docker+rancher的全部内容,希望文章能够帮你解决spring cloud分布式部署docker+rancher所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(71)

评论列表共有 0 条评论

立即
投稿
返回
顶部