2017-04-09 3 views
2

이 권리를 얻을 수 있도록 도와주세요.도커의 오버레이 네트워크 이해

웜 모드의 오버레이 네트워크를 사용하면 교차 노드 컨테이너가 동일한 네트워크에서 서로를 볼 수 있습니다.
맞습니까? 두 개의 유사한 노드 M (관리자) 및 W (근로자)

  • 이 용기 CM 및 CW 각각 노드 M과 W 실행의

    • 떼 모드 클러스터 :

      그래서 나는 다음과 같은 설정이 있다면

    • 모두 용기가

    내가 AB하여야 할 오버레이 네트워크 OVNET에게 연결되어 depends_on: - CM:target

  • CM CM에서 ping target으로? 그렇지 않다면, 왜?


    데모 : docker stack deploy -c test.yml test test.yml는 다음과 같다 여기서

    version: "3" 
    services: 
        CM: 
        image: alpine 
        command: sh -c 'ping CW' 
        depends_on: 
         - CW 
        networks: 
         - OVNET 
        deploy: 
         placement: 
         constraints: 
          - node.role == manager 
        CW: 
        image: alpine 
        command: sh -c 'ping localhost' 
        networks: 
         - OVNET 
        deploy: 
         placement: 
         constraints: 
          - node.role == worker 
    networks: 
        OVNET: 
        driver: overlay 
    

    Thnaks를 미리!

  • 답변

    2

    예, 예상대로 작동합니다. 네트워크가 먼저 생성 된 다음 컨테이너는 제약 조건에 따라 배치됩니다. CW가 이미지를 가져 오는 데 시간이 필요하기 때문에 CM의 첫 번째 인스턴스가 실패 할 수도 있지만 이후에는 정상적으로 작동 할 것으로 예상됩니다. 동일한 오버레이 네트워크에있는 컨테이너는 내장 DNS를 통해 서비스 이름을 통해 서로 통신 할 수 있습니다.

    +0

    그게 내가 생각한 것입니다. 하지만이 예제를 실행하면 –

    +0

    이 예제를 실행하면 문제가 없습니다. 너를 위해서 아닌가? – johnharris85