如何从 docker 容器中获取 docker 主机的 IP 地址

新手上路,请多包涵

正如标题所说,我需要能够检索 docker 主机的 IP 地址和从主机到容器的端口映射,并在容器内执行此操作。

原文由 xiamx 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 966
2 个回答
/sbin/ip route|awk '/default/ { print $3 }'

正如@MichaelNeale 所注意到的,在 Dockerfile 中使用这种方法是没有意义的(除非我们只在构建期间需要这个 IP),因为这个 IP 将在构建期间被硬编码。

原文由 spinus 发布,翻译遵循 CC BY-SA 3.0 许可协议

从 18.03 版本开始,您可以使用 host.docker.internal 作为主机的 IP。

适用于 MacDocker、Windows 的 Docker 以及其他平台。

这是 Mac 专用的 docker.for.mac.localhost 的更新,自版本 17.06 起可用,而 docker.for.mac.host.internal 自版本 17.12 起可用,它们也可能在该平台上仍然有效。

请注意,与 MacWindows 文档中一样,这仅用于开发目的。

例如,我在主机上设置了环境变量:

 MONGO_SERVER=host.docker.internal

在我的 docker-compose.yml 文件中,我有这个:

 version: '3'

services:
  api:
    build: ./api
    volumes:
      - ./api:/usr/src/app:ro
    ports:
      - "8000"
    environment:
      - MONGO_SERVER
    command: /usr/local/bin/gunicorn -c /usr/src/app/gunicorn_config.py -w 1 -b :8000 wsgi

原文由 aljabear 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题