docker-compose无法解析服务主机名 [英] docker-compose fails to resolve service hostname
本文介绍了docker-compose无法解析服务主机名的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
Docker文档说,可以使用服务名称相互访问同一撰写文件中的每个容器.除lb以外,这似乎适用于我所有的容器.
Docker documentation says that every container in the same compose file can be accessed from each other by using their service names. This seems to be working for all my containers except the lb.
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
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输出:
broker1 output:
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
推荐答案
也许您应该为它们添加一个公共网络.
Maybe you should add them a common network.
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
如果您的lb容器正在工作,我看不出还有什么可能给您带来这种问题,也许您的default.conf文件不正确.
I don't see what else could give you that kind of problem if your lb container is working ofc, maybe your default.conf file isn't correct.
希望有帮助.
这篇关于docker-compose无法解析服务主机名的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文