docker - traefik 主机名适用于 Web 应用程序,但不适用于 mongodb

标签 docker docker-compose traefik

我正在使用 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/

相关文章:

python-3.x - 如何在 Docker 容器中安装支持 CUDA 的 PyTorch?

docker - 为什么 `docker-compose.yml` 中指定的 ARGS 在 `Dockerfile` 中可用于 `docker compose run` 而不是 `docker compose build` ?

Docker for Mac Beta16 错误 : Pinata Command Not Found

docker - Filebeat 不会将日志发送到 logstash

docker-compose - jhipster docker-compose : *TypeError: Cannot read property 'generator-jhipster' of undefined*

docker - Traefik配置示例混合让我们加密和购买证书

docker - Traefik:通过本地IP地址以及外部(https)访问服务?

docker - Traefik SSL 配置

docker - 我正在尝试列出所有已发布端口80或说443的容器

docker - 使用 docker 镜像使用 dockerfile 构建不同的 docker 镜像