我有两个应用程序,都是用spring引导编写的。两者都在不同的码头集装箱中运行。我还有领事在另一个码头的集装箱里运行。我使用docker-come.yml文件为领事公开了端口8500。那么,我如何指定我的spring引导应用程序在哪里注册自己,即在哪里运行领事。我是提供映射端口的地址(映射到本地计算机的端口),还是其他更改?
我现在使用的例子是:https://github.com/Java-Techie-jt/cloud-consul-service-discovery
编辑:
docker-compose.yml:
version: "2"
services:
consul:
container_name: consul
image: consul
expose:
- "8300"
- "8400"
- "8500"
restart: always
registrator:
container_name: registrator
image: gliderlabs/registrator:master
volumes:
- "/var/run/docker.sock:/tmp/docker.sock"
command: -internal consul://consul:8500
restart: always
depends_on:
- consul
web1:
image: deis/mock-http-server
container_name: web1
expose:
- "8080"
environment:
SERVICE_NAME: "web"
SERVICE_TAGS: "web"
restart: always
depends_on:
- registrator
web2:
image: deis/mock-http-server
container_name: web2
expose:
- "8080"
environment:
SERVICE_8080_NAME: "web"
SERVICE_8080_TAGS: "web"
restart: always
depends_on:
- registrator
haproxy:
build: ./haproxy
container_name: my-haproxy
image: anthcourtney/haproxy-consul
ports:
- 80
depends_on:
- web1
- web2
test:
container_name: test-client
build: ./test
depends_on:
- haproxy
networks:
default:
发布于 2020-02-03 07:43:09
您可以使用注册服务器作为服务注册中心。
注册表自动注册和取消任何码头集装箱服务,检查集装箱,因为他们来网上。注册中心支持可插拔服务注册中心,目前包括领事、etcd和SkyDNS 2。
您可以运行注册程序,因为container.It将注册应用程序的每个端口。下面是示例撰写文件:-
version: '2'
services:
registrator:
image: "${REGISTRY}gliderlabs/registrator:latest"
command: [
"-ip=<docker-host-ip>",
"-retry-attempts", "100",
"-cleanup",
# "-internal",
"consul://vconsul:8500"
]
https://stackoverflow.com/questions/60034547
复制相似问题