2016-11-04 2 views
2

2 개의 Linux 컴퓨터에서 docker swarm 클러스터를 만듭니다. 그러나 docker-upose -d를 사용하여 컨테이너를 시작하면 일부 오류가 발생했습니다.오버레이 네트워크 모드로 Docker Swarm 클러스터를 설정하는 방법

이 내 고정 표시기 정보입니다 : 이것은 내 고정 표시기 - compose.yml

version: '2' 
services: 
    rabbitmq: 
    image: rabbitmq 
    ports: 
    - "5672:5672" 
    - "15672:15672" 
    network_mode: "bridge" 
    config-service: 
    image: ozms/config-service 
    ports: 
    - "8888:8888" 
    volumes: 
    - ~/ozms/configs:/var/tmp/ 
    - ~/ozms/log:/log 
    network_mode: "bridge" 
    labels: 
    - "affinity:image==ozms/config-service" 
    eureka-service: 
    image: ozms/eureka-service 
    ports: 
    - "8761:8761" 
    volumes: 
    - ~/ozms/log:/log 
    links: 
    - config-service 
    - rabbitmq 
    environment: 
    - SPRING_RABBITMQ_HOST=rabbitmq 
    network_mode: "bridge" 

내가 docker-compose up -d 간부 인 후, 서비스 rabbitmqconfig-service이 시작될 수 있지만 eureka-service가 발생

Containers: 4 
Running: 4 
Paused: 0 
Stopped: 0 
Images: 28 
Server Version: swarm/1.2.5 
Role: primary 
Strategy: spread 
Filters: health, port, containerslots, dependency, affinity, constraint 
Nodes: 2 
ozcluster01: 192.168.168.41:2375 
    └ ID: CKCO:JGAA:PIOM:F4PL:6TIH:EQFY:KZ6X:B64Q:HRFH:FSTT:MLJT:BJUY 
    └ Status: Healthy 
    └ Containers: 2 (2 Running, 0 Paused, 0 Stopped) 
    └ Reserved CPUs: 0/2 
    └ Reserved Memory: 0 B/3.79 GiB 
    └ Labels: executiondriver=native-0.2, kernelversion=3.10.0- 327.13.1.el7.x86_64, operatingsystem=CentOS Linux 7 (Core),  storagedriver=devicemapper 
    └ UpdatedAt: 2016-11-04T02:05:08Z 
    └ ServerVersion: 1.10.3 
ozcluster02: 192.168.168.42:2375 
    └ ID: 73GR:6M7W:GMWD:D3DO:UASW:YHJ2:BTH6:DCO5:NJM6:SXPN:PXTY:3NHI 
    └ Status: Healthy 
    └ Containers: 2 (2 Running, 0 Paused, 0 Stopped) 
    └ Reserved CPUs: 0/2 
    └ Reserved Memory: 64 MiB/3.79 GiB 
    └ Labels: executiondriver=native-0.2, kernelversion=3.10.0-327.10.1.el7.x86_64, operatingsystem=CentOS Linux 7 (Core), storagedriver=devicemapper 
    └ UpdatedAt: 2016-11-04T02:05:06Z 
    └ ServerVersion: 1.10.3 

입니다 오류 :

[[email protected] ozms]$ docker-compose up -d 
Creating ozms_config-service_1 
Creating ozms_rabbitmq_1 
Creating ozms_eureka-service_1 
ERROR: Unable to find a node that satisfies the following conditions 
[port 8761 (Bridge mode)] 
[available container slots] 
[--link=ozms_config-service_1:config-service --link=ozms_config-service_1:config-service_1 --link=ozms_config-service_1:ozms_config-service_1 --link=ozms_rabbitmq_1:ozms_rabbitmq_1 --link=ozms_rabbitmq_1:rabbitmq --link=ozms_rabbitmq_1:rabbitmq_1] 

가 내가 docker ps을 간부 인 :

CONTAINER ID  IMAGE     COMMAND     CREATED    STATUS    PORTS                       NAMES 
871afc8e1eb6  rabbitmq    "docker-entrypoint.sh" 2 minutes ago  Up 2 minutes  4369/tcp, 192.168.168.41:5672->5672/tcp, 5671/tcp, 25672/tcp, 192.168.168.41:15672->15672/tcp ozcluster01/ozms_rabbitmq_1 
8ef3f666a7b9  ozms/config-service "java -Djava.security" 2 minutes ago  Up 2 minutes  192.168.168.42:8888->8888/tcp                 ozcluster02/ozms_config-service_1 

내가 그 rabbitmq 기계 ozculster01에서 시작되어 발견, 구성 서비스는 컴퓨터 ozculster02에서 시작합니다.

도커 작성시 config-service이 시작되면 links이 없으므로 성공적으로 시작할 수 있습니다. ozculster02 기계에 eureka-service을 시작하면 links에서 rabbitmq까지이지만 rabbitmq 서비스는 ozculster01 기계에 있고 오류가 발생했습니다.

문제를 해결하려면 어떻게해야합니까?
Docker Swarm 클러스터에 network_mode: "bridge"을 사용하는 것이 맞습니까?

답변

1

나는 스스로 문제를 해결했습니다.

웜 모드에서 도커 컨테이너는 network_mode : bridge가있는 다른 컨테이너에 연결할 수 없습니다.

웜 모드에서는 network_mode : overlay을 사용해야합니다. 당신이 구성 파일 메이트 버전을 사용하는 경우 오버레이 2.

더 자세히 볼 기본적으로 사용됩니다 Setting up a Docker Swarm with network overlay

모드 overlay로를 고정 표시기 - compose.yml는 config likns 필요하지 않은 파일, 컨테이너 문의 할 수 있습니다 ${service_name_in_composeFile}

예와 다른 컨테이너 :

내가 용기 config-service에 입력 할 수 있으며 $ ping eureka-service, 그리고 그것을 잘 작동합니다!

version: '2' 
services: 
    rabbitmq: 
    image: rabbitmq 
    ports: 
    - "5672:5672" 
    - "15672:15672" 
    config-service: 
    image: ozms/config-service 
    ports: 
    - "8888:8888" 
    volumes: 
    - ~/ozms/configs:/var/tmp/ 
    - ~/ozms/log:/log 
    labels: 
    - "affinity:image==ozms/config-service" 
    eureka-service: 
    image: ozms/eureka-service 
    ports: 
    - "8761:8761" 
    volumes: 
    - ~/ozms/log:/log 
    #links: it is no need in overlay mode 
    # - config-service 
    # - rabbitmq 
    environment: 
    - SPRING_RABBITMQ_HOST=rabbitmq 
:

내 작성-file.yml입니다
관련 문제