首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法使用docker-compose运行注册器。获取连接被拒绝错误

无法使用docker-compose运行注册器。获取连接被拒绝错误
EN

Stack Overflow用户
提问于 2017-01-17 01:33:26
回答 1查看 681关注 0票数 1

我的本地机器上有领事和一堆服务。现在我想使用Registrator在Consul中实现服务注册。如果我这样做:

代码语言:javascript
运行
复制
$ docker run -d --name registrator --net=host \
  --volume /var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator \
  consul://127.0.0.1:8500

然后运行一些服务,我看到它们已在Consul中注册。但是,如果我尝试通过docker-compose.yml执行此操作(因为我不想每次都手动运行上面的命令):

代码语言:javascript
运行
复制
version: '2'
services:
    consul:
        image: gliderlabs/consul-server:latest
        command: "advertise=127.0.0.1 -server -bootstrap"
        container_name: consul
        hostname: 127.0.0.1
        ports:
            - "8500:8500"
    registrator:
        image: gliderlabs/registrator:latest
        command: "consulL//127.0.0.1:8500"
        container_name: registrator
        hostname: 127.0.0.1
        depends_on: 
            - consul
        volumes:
            - /var/run/docker.sock:/tmp/docker.sock

   ... other services that need to be registered

然后运行:

代码语言:javascript
运行
复制
$ docker-compose up

然后,我在控制台中看到以下错误消息:

代码语言:javascript
运行
复制
registrator | 2017/01/16 17:01:24 Get http://127.0.0.1:8500/v1/status/leader dial tcp 127.0.0.1:8500: connection refused

我想,我的问题与我没有指定--net=host的事实有关。但我不知道如何才能做到这一点。我希望,有人知道如何修复它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-17 01:58:53

默认情况下,Docker-compose会在docker-compose.yml中为所有服务创建新网络。如果您需要将您的容器附加到主机网络,请添加到您的服务网络模式param:

代码语言:javascript
运行
复制
...
registrator:
  network_mode: host
  ...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41681944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档