我正在使用 docker-compose 和 traefik 运行一个 mongo 实例。
myapp-mongo:
build: ../images/myapp-mongo
restart: always
ports:
- "27017:27017"
labels:
- "traefik.ports=27017,27018"
- "traefik.backend=myapp-mongo"
- "traefik.frontend.rule=Host:myapp-mongo.docker.localhost"
networks:
- development
environment:
- MONGO_USER=${MONGO_USER}
- MONGO_PASSWD=${MONGO_PASSWD}
- MONGO_AUTHDB=${MONGO_AUTHDB}
Mongo 运行良好,我可以在 Mac 上使用 127.0.0.1
进行连接。
问题是我无法使用主机名 myapp-mongo.docker.localhost
进行连接。它仅适用于 IP 127.0.0.1。
尝试 ping IP 127.0.0.1 响应正常,但尝试 ping 主机名不起作用。
我已经将 127.0.0.1 proxy.docker.localhost
添加到 /etc/hosts
中以使 traefik 正常工作。
所有其他网络应用程序的主机名都可以正常工作,例如myapp.docker.localhost
。这个问题只发生在这个 mongodb 容器上。
最佳答案
可能是因为 Træfik 是 HTTP 代理,因此仅支持 HTTP/HTTPS 连接。
关于docker - traefik 主机名适用于 Web 应用程序,但不适用于 mongodb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43497463/