SpringCloud--14微服务的部署(服务Docker化)

1.微服务的部署

   第一步,服务Docker化

   第二步,将Docker化后的镜像推到我们自己的仓库中

   第三步,搭建高可用的集群环境

   现在工程目录是这个样子的:目前只有最基础的三个服务,功能只有用户的注册和登录。

    

  ok,先拉取一个java 的基础镜像

 可以把这个镜像跑一下,看看

docker run -it --entrypoint bash registry.saas.hand-china.com/tools/javabase:0.5.0

  

  查看操作系统的版本:

  

 java 版本:

 

ok,第一个docker化的服务为注册中心,因为他没什么依赖,注意配置不能有写死的东西

新建一个Dockerfile就建在根目录下,然后上传到服务器上,再用Dokcer打出镜像

Dockerfile:

FROM registry.saas.hand-china.com/tools/javabase:0.5.0
MAINTAINER Mr.Wang
COPY target/app.jar /app.jar

ENTRYPOINT ["java","-jar","/app.jar"]

  

   创建一个build.sh

     

  启动mysql数据库:

  把mysql的镜像拉一下:

docker pull registry.saas.hand-china.com/tools/mysql:5.7.23
docker pull registry.cn-hangzhou.aliyuncs.com/choerodon-tools/mysql:5.7.17

  

docker run -d --name mysql -v mysql-data:/var/lib/mysql -p 3306:3306  -e MYSQL_ROOT_PASSWORD=133309 -e MYSQL_DATABASE=sys-user registry.saas.hand-china.com/tools/mysql:5.7.23

 这个时候由于数据卷之前有其他的容器用过,导致使用这个挂载无法生成指定的sys-user数据库,所以我们把数据卷要删除一下,

 查看数据卷的命令:

   docker volume ls

 删除数据卷的命令:

   docker volume rm <数据卷名字>

 删除完了启动数据库。

然后运行我们之前打好的服务的容器,要想看到效果记得做一个端口映射。当然这个服务是依赖与eureka的,我们首先应该将eureka docker化。启动eureka

docker run -d --name eureka-server  -p 8000:8000 eureka-app:1.0  --host.name=192.168.237.129

  启动eureka的时候遇到问题,就是做了端口的映射,PORTS那一栏没有端口信息,本地也访问不到,然后关闭了 centos的selinux,vim /etc/sysconfig/selinux     把SELINUX=enforcing 改为 SELINUX=disabled,然后重启服务器,之后还是访问不到,所以把命令修改为上面的命令加上了--name的信息之后恢复正常。

然后启动user服务:

docker run -it --name user-service -p 8002:8002 user-app:1.0  --eureka.host=192.168.237.129 --mysql.address=192.168.237.129

 但是访问user服务的时候出问题了,访问不到,经检查是端口不通:解决的办法和上面解决eureka是一样的。端口的映射要放在--name后面,镜像名字的前面。

 

 问题解决,能访问接口:访问swagger接口

 

     ok ,Uaa服务也是这样部署

 docker run -d --name uaa-service -p 8001:8001 uaa-app:1.0  --eureka.host=192.168.237.129 --mysql.address=192.168.237.129

   用户登陆报错:

  

  这里需要考虑的是微服务和微服务的通信,微服务和外围服务的通信。这里的服务和服务的通信采用docker的link机制,服务与基础资源的访问使用端口映射的方式。

   写一个DockerCompose来启动各个容器,看看他又哪些网络,就用已经存在的吧,懒得去创建

docker-compose.yml

version: '3'

networks:
  default:
    external:
      name: test-docker-compose_c7nNetwork

services:
  eureka-server:
    image: eureka-app:1.0
    command:
    - "--eureka.host=192.168.237.129"
    ports:
    - 8000:8000

  uaa-service:
    image: uaa-app:1.0
    command:
    - "--mysql.address=192.168.237.129"
    - "--eureka.host=192.168.237.129"

  user-service:
    image: user-app:1.0
    links:
    - uaa-service
    command:
    - "--mysql.address=192.168.237.129"
    - "--eureka.host=192.168.237.129"
    ports:
    - 8002:8002


#  api-gateway-zuul:
#    image: api-gateway-zuul:latest
#    links:
#    - course-edge-service
#    - user-edge-service
#    ports:
#    - 8080:8080

 用户登陆成功:

   

 

 

 

 

   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时空恋旅人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值