2017-01-02 1 views
0

두 컨테이너간에 통신을 시도하고 있지만 동일한 작업을 수행 할 수 없습니다. docker에서 'server'라는 서비스를 추가합니다.이 서비스는 'endpoint'라는 다른 서비스에 종속됩니다. 나는 은 '서버'에서 '엔드 포인트'의 IP와 포트를 통과해야하고, 내가 호스트 목록에서 '엔드 포인트'를 볼 수 없습니다하지만 지금에Docker V2 네트워크 오류 작성

command: -userver -e endpoint:51393 

아래로 같은 일을하고있다 명령 아래 사용 : 내 전체 고정 표시기-compose.yml 파일을 다음과 같이

127.0.0.1  localhost 
::1  localhost ip6-localhost ip6-loopback 
fe00::0 ip6-localnet 
ff00::0 ip6-mcastprefix 
ff02::1 ip6-allnodes 
ff02::2 ip6-allrouters 
172.21.0.3  49f4808fa677 

입니다

:

여기
docker-compose exec server cat /etc/hosts 

출력이

version: '2' 

services: 
    endpoint: 
    build: 
     context: . 
     dockerfile: Dockerfile 
    image: myimage_end:0.1 
    command: -uendpoint 
    ports: 
     - 51393:51393 
    networks: 
     - internal 

    server: 
    build: 
     context: . 
     dockerfile: Dockerfile 
    image: myimage_server:0.1 
    command: -userver -e endpoint:51393 
    ports: 
     - 51392:51392 
    depends_on: 
     - endpoint 
    networks: 
     - internal 
    volumes: 
     - /local_path/dataset:/dataset 

networks: 
    internal: 
    driver: bridge 

답변

2

docker 작성의 현재 버전을 사용하면 매우 정적 인 설정이기 때문에 컨테이너의 호스트 파일을 조작하여 다른 컨테이너에서 하나의 컨테이너에 도달하는 것이 더 이상 수행되지 않습니다.

요즘 docker-compose는 동일한 네트워크의 모든 컨테이너가 서비스 이름으로 서로를 볼 수있게하는 일종의 DNS 서비스를 사용합니다. 이렇게하면 종속 컨테이너가 중지/다시 시작하지 않고 종속 컨테이너를 중지 할 수 있습니다. 이 기능을 사용하려면 depends_on을 지정할 필요가 없습니다. 종속성이 다시 시작될 때 종속 서비스를 다시 시작해야합니다.

자세한 내용은 네트워킹에 관한 docker-compose docs을 참조하십시오. 상황을 디버깅

일부 명령 다음 정보를

docker-compose exec server nslookup endpoint 

docker inspect <container_name_of_service> 
+0

감사합니다, 나는 지금 해결 있어요. 건배 !! – ankitkamboj

관련 문제