2017-01-19 3 views
0

그래서는 고정 표시기 떼의 서비스 생성 :게시 서비스에 연결할 수없는

docker create service --name my-service --network my-network -p 8761:8761 --replicas 1 my-image 

그것은 봄 부팅 응용 프로그램의과 생성 된 고정 표시기 컨테이너의 표준 출력을 볼 때 다음 줄이 표시됩니다 :

2017-01-19 12:44:48.588 INFO 6 --- [   main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8761 (http) 

응용 프로그램이 올바른 포트를 수신하고 있음을 나타냅니다. docker service inspect my-service을 실행하면이 서비스에 대해 포트 8761이 게시됨을 의미합니다.

그런 다음 문제를 시도해보십시오. curl http://localhost:8761 (지금은 득시글 득시글하다.) 다른 포트로 컬링하면 즉시 Connection Refused 오류가 발생합니다.

스프링 부팅 응용 프로그램은 컴퓨터에서 직접 시작될 때 잘 작동하며 로그에 힌트가 없으며 다음에 어디서 볼지를 알지 못합니다. 단서가 있습니까?

+0

당신은'관리자의 IP에 curl'은 localhost로는 안된다. –

+0

@AlexanderGeorge 감사합니다. 관리자 컴퓨터에서 컬링 할 때 localhost를 사용할 수없는 이유는 무엇입니까? – SakeSushiBig

+0

나는 적절한 답을 썼다. –

답변

1

컨테이너가 실행되는 노드이기 때문에 관리자의 IPcurl을 입력해야합니다.

curl 명령을 컨테이너 내부에서 실행 중이지만 eval $("docker-machine env <manager>")과 같은 작업을 수행했다고 가정합니다.이 경우 관리자에서만 컨테이너를 시작할 수 있습니다. 이 기능을 사용하면 사용할 활성 도커 엔진 만 선택할 수 있습니다.

은 실제로해야 ssh를 그으로 컴퓨터에 명령을 실행하려면, 다음은 로컬 호스트 curl 수 :

docker-machine ssh <manager> -- curl localhost:8761

+0

IP 주소에'curl '이 적용되었지만 컨테이너에서'curl to localhost' 명령을 실행하지 않았습니다. 도커 뭉치 마스터 자체에서 실행했습니다 ** ** 같은 컴퓨터 **. – SakeSushiBig