2017-05-22 4 views
1

Die Docker-Dokumentation besagt, dass auf jeden Container in derselben Compose-Datei unter Verwendung ihrer Servicenamen zugegriffen werden kann. Dies scheint für alle meine Behälter mit Ausnahme der lb.docker-compose kann Service-Hostname nicht auflösen

version: "3" 
services: 
    lb: 
    image: nginx 
    volumes: 
     - ./conf/nginx:/etc/nginx/conf.d/default.conf 
    ports: 
     - "8080:80" 
    environment: 
     - NGINX_HOST=foobar.com 
     - NGINX_PORT=80 
    stdin_open: true 
    tty: true 

    worker1: 
    build: ./rel_sync_worker/. 
    stdin_open: true 
    tty: true 
    depends_on : 
     - broker 
     - lb 

    worker2: 
    build: ./rel_sync_worker/. 
    stdin_open: true 
    tty: true 
    depends_on : 
     - broker 
     - lb 

    broker: 
    build: ./broker/. 
    ports: 
     - "4444:4444/udp" 
    stdin_open: true 
    tty: true 
    depends_on: 
     - lb 

broker1.py

import socket 
host = socket.gethostbyname("broker") 
print "broker", host 
host = socket.gethostbyname("worker1") 
print "worker1", host 

host = socket.gethostbyname("lb") 
# host = "127.0.0.1" 
print host 
port = 5555 

broker1 Ausgang zu arbeiten:

broker_1 | broker 172.18.0.4 
broker_1 | worker1 172.18.0.2 
broker_1 | Traceback (most recent call last): 
broker_1 | File "sendertest.py", line 11, in <module> 
broker_1 |  host = socket.gethostbyname("lb") 
broker_1 | socket.gaierror: [Errno -2] Name or service not known 
+0

Wie lautet das Andockprotokoll für den Andockcontainer "lb"? Gibt es dich aus bestimmten Gründen auf? – RyanWilcox

Antwort

0

Vielleicht ihnen sollten Sie fügen Sie ein gemeinsames Netzwerk.

version: "3" 
services: 
    lb: 
    image: nginx 
    volumes: 
     - ./conf/nginx:/etc/nginx/conf.d/default.conf 
    ports: 
     - "8080:80" 
    environment: 
     - NGINX_HOST=foobar.com 
     - NGINX_PORT=80 
    stdin_open: true 
    tty: true 
    netwok: 
     - common-network 

    worker1: 
    build: ./rel_sync_worker/. 
    stdin_open: true 
    tty: true 
    depends_on : 
     - broker 
     - lb 
    netwok: 
     - common-network 

    worker2: 
    build: ./rel_sync_worker/. 
    stdin_open: true 
    tty: true 
    depends_on : 
     - broker 
     - lb 

    broker: 
    build: ./broker/. 
    ports: 
     - "4444:4444/udp" 
    stdin_open: true 
    tty: true 
    depends_on: 
     - lb 
    netwok: 

networks: 
    common-netwok: 
    driver: overlay 

Ich sehe nicht, was sonst Sie diese Art von Problem geben könnte, wenn Ihr lb Behälter OFC funktioniert, vielleicht Ihre default.conf Datei ist nicht korrekt.

Ich hoffe, es hilft.

+0

gelöst. Irgendeine Art von Fehler, denke ich. Vielen Dank für die Problemumgehung – xalusigadu