2017-01-16 1 views
0

로컬 컴퓨터에 영사관과 여러 서비스가 있습니다. 이제 등록자를 사용하여 영사에 서비스 등록을 구현하고 싶습니다. 내가 그렇게한다면 :docker-compose를 사용하여 등록자를 실행할 수 없습니다. 연결을 거부했습니다. 오류

$ docker run -d --name registrator --net=host \ 
    --volume /var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator \ 
    consul://127.0.0.1:8500 

그런 다음 서비스를 실행하면 영사관에 ​​등록되어있는 것을 볼 수 있습니다.

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 

그리고 실행 :

$ docker-compose up 

을 다음 내가 보는 나는 (내가 위의 명령 손으로 때마다 실행하지 않기 때문에) 고정 표시기 - compose.yml 통해 그것을 수행하려고하지만 경우 콘솔에서이 오류 메시지 : 내가 생각

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을 지정하지 않았다, 사실과 관련이있다. 하지만 어떻게 할 수 있는지 모르겠습니다. 나는 누군가 그것을 고치는 법을 안다.

답변

1

Docker-compose는 모든 서비스에 대한 새 네트워크를 기본적으로 docker-compose.yml에 만듭니다. 컨테이너를 호스트 네트워크에 연결하여 서비스 네트워크 모드 매개 변수를 추가해야하는 경우

... 
registrator: 
    network_mode: host 
    ... 
+0

감사합니다. 나는 그것을 잠시 후에 점검 할 것이다. – Jacobian

+0

방금 ​​확인했습니다 - 작동합니다! – Jacobian

+0

안녕하세요, Cortwave! 나는 영사와 등록자에게 헌정 된 또 다른 질문을 올렸다 - http://stackoverflow.com/questions/41697466/not-all-services-are-registered-in-consul-with-registrator. 잠시 후, 내 서비스 중 하나가 영사관에 ​​등록되어 있지 않으며 그 이유를 모르겠습니다. 아마, 당신은 약간의 생각을 가지고 있으며, 조언을 공유하는데 1 분 정도를 보낼 수 있습니다, 다시 한번 감사드립니다! – Jacobian

관련 문제