gpt4 book ai didi

macos - 如何从网络上的 docker 容器访问在本地主机上运行的网络服务器?

转载 作者:行者123 更新时间:2023-12-01 13:44:51 24 4
gpt4 key购买 nike

我有以下系统配置:

  • 在用户定义的网络上运行的 Docker 容器
  • docker-machine(在 OS 上使用 VirtualBox:X 将端口 9000 转发到 9000)
  • 运行在 http://localhost:9000 上的本地网络服务器

  • 我不知道如何从我的 docker 容器中针对这个网络服务器发出一个基本的 http 请求。

    为了测试这一点,我正在使用:
    docker exec testcontainer curl --data "foobaz=foo" http://{hostname}:9000/

    我尝试过的主机名:
  • '本地主机'
  • '127.0.0.1'
  • '192.168.99.100'(docker-machine IP)

  • 每次我收到错误或超时。当我在本地运行 curl 命令时(不是在 docker 和我的主机 OS:X 机器上),我能够成功发布 http 请求。

    我无法断开 docker 容器与用户定义网络的连接。我也无法将我的网络服务器添加到该网络,因为它不在容器中运行。另外,我知道以另一种方式连接( curl 到在 docker 容器中运行的网络服务器)很简单,但这不是我的用例。

    如何成功地将该 http 请求从作为用户定义网络的一部分的 docker 容器路由到我的本地主机网络服务器?

    最佳答案

    您可以使用本地计算机的实际 IP 地址执行此操作。

    例如,如果您的主机操作系统上的 en0 IP 是 10.100.20.32,您可以运行:

    docker exec testcontainer curl --data "foobaz=foo" http://10.100.20.32:9000/

    这将成功地允许您发出 http 请求。

    请注意,如果您是从主机 docker 网络上的容器执行此操作,这很简单,因为您可以直接访问 localhost0.0.0.0无需使用实际机器IP。

    关于macos - 如何从网络上的 docker 容器访问在本地主机上运行的网络服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36728994/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com