【原创】docker部署微服务与宿主机微服务交互

目的:熟悉docker部署方式,记录一下方便后续查阅

环境:win10

测试架构配置(下表配置方式不适合生产环境,只是为了自己熟悉docker容器方式):

nacos注册发现服务微服务提供者微服务消费者
宿主机环境宿主机环境宿主机docker容器环境
   

 

 

 

 

前提步骤:

一、安装docker toolbox

二、创建nacos微服务工程

1. 服务提供方

server:
  port: ${port:8001}
spring:
  application:
    name: service-01
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.99.1:8848
        namespace: e1c2fa58-6b69-4802-96cf-f446c37434aa
        group: DMP

实现controller接口

    @GetMapping("/getname")
    private String getSchoolename(){
        return "zhongyingxiaoxue";
    }

2. 服务调用方

server:
  port: 8091
spring:
  application:
    name: consumer-01
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.99.1:8848
        namespace: e1c2fa58-6b69-4802-96cf-f446c37434aa
        group: DMP

feign:
  client:
    config:
      default:
        connectTimeout: 2000
        readTimeout: 2000

三、创建docker镜像

1. docker toolbox根目录下创建Dockerfile文件:

FROM openjdk:8-jre
ADD consumerservice.jar consumerservice.jar
EXPOSE 8091
CMD java -Xms512m -Xmx512m -jar consumerservice.jar 

2. 把服务调用方微服务的consumerservice.jar文件,放在docker toolbox根目录下

3. 构建docker镜像

docker build -t consumer:1.1 .

四、开始运行

1.  启动nacos服务

startup.sh -m standalone

2. 启动服务方微服务

  宿主机直接java -jar providerservice.jar

3. 启动docker镜像服务消费微服务

 

docker run -p 8091:8091  -it 2da88871d5ef 

 

步骤操作完毕,登录nacos管理页面查看微服务

 

五、问题及解决

微服务的nacos注册发现地址最初写的127.0.0.1:8848,发现docker服务微服务无法成功找到服务注册中心,原因:docker容器中程序访问127.0.0.1,实际上是docker容器内的地址,所以需要修改代码中服务注册地址为docker的网关地址192.168.99.1:8848

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值