Spring Cloud Consul 和 Consul Clients dockerized
Spring Cloud Consul and Consul Clients dockerized
我有 2 个应用程序,都是使用 spring 引导编写的。两者都 运行 在不同的 docker 容器中。我在另一个 docker 容器中也有 consul 运行。我已经使用 docker-compose.yml 文件为 consul 公开了端口 8500。那么,我如何为我的 spring 启动应用程序指定在哪里注册自己,即 consul 运行 在哪里。我是给出映射端口的地址(映射到我本地机器的端口),还是其他一些更改?
我现在使用的示例: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:
您可以使用 registrator 作为您的服务注册表。
Registrator 通过在容器联机时检查容器,自动为任何 Docker 容器注册和注销服务。 Registrator 支持可插拔服务注册中心,目前包括 Consul、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"
]
我有 2 个应用程序,都是使用 spring 引导编写的。两者都 运行 在不同的 docker 容器中。我在另一个 docker 容器中也有 consul 运行。我已经使用 docker-compose.yml 文件为 consul 公开了端口 8500。那么,我如何为我的 spring 启动应用程序指定在哪里注册自己,即 consul 运行 在哪里。我是给出映射端口的地址(映射到我本地机器的端口),还是其他一些更改?
我现在使用的示例: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:
您可以使用 registrator 作为您的服务注册表。
Registrator 通过在容器联机时检查容器,自动为任何 Docker 容器注册和注销服务。 Registrator 支持可插拔服务注册中心,目前包括 Consul、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"
]