Consul服务注册与发现(二)
本章将介绍在如在Docker 中接入 Consul
废话不说,直接开工
1、修改appsettings.json配置
在docker 中,我们无法直接访问localhost宿主机器,所以需要将ConsulAddress改成 http://host.docker.internal:8500/,让docker可以访问
"ConsulAddress": "http://host.docker.internal:8500/",
2、启动Docker调试置
启动Docker调试时,发现报错
经过排查:发现是 ip 和 port 未配置原因,启动参数未配置
增加启动参数
--ip=127.0.0.1 --port=49167
重新运行,成功
打开 https://localhost:49167/api/health,返回ok
项目开发调试不影响了,继续发布
3、在Docker中发布运行
启动Docker,构建镜像
docker build -t myapi -f ./MyAPI/Dockerfile .
运行容器
docker run -d -p 5001:80 --name myservice1 myapi
打开 http://localhost:5001/api/health ,失败
查看容器状态
docker inspect myservice1
查看容器日志
嗯!还是没有ip 和 port的原因 (我是故意的!)
删除myservice1 容器
docker rm myservice1
带上ip 和 port,重新运行:
docker run -d -p 5001:80 --name myservice1 myapi --ip=127.0.0.1 --port=5001
打开 http://localhost:5001/api/health,返回ok
4、打开Consul控制台,查看
5、再运行2个试试
docker run -d -p 5002:80 --name myservice2 myapi --ip=127.0.0.1 --port=5002
docker run -d -p 5003:80 --name myservice3 myapi --ip=127.0.0.1 --port=5003
我们暂停myservice1 试试
等待一会,发现服务已被移除
再重新启动
结果达到预期
到这里,Consul服务注册就完成了
下一章我们将尝试Consul服务的调用
https://blog.csdn.net/weixin_41003771/article/details/118734591