gpt4 book ai didi

docker - 在 Ubuntu 18.04 上访问 Docker 容器中的主机

转载 作者:行者123 更新时间:2023-12-01 09:43:56 25 4
gpt4 key购买 nike

我正在寻找一种在 Docker 容器中连接到我的主机的方法(在我的情况下,访问特定端口以在应用程序容器中使用代理)。

我试过network_mode: "host" (或 docker run --network="host" ),它在访问本地机器的情况下工作,但导致一些与将网络驱动程序更改为 host 相关的其他问题:

SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known.



我也不能使用 ifconfig定义网络别名,因为我使用的是 Ubuntu 18.04。

我该怎么办?

最佳答案

更新 : 自docker-host ( https://github.com/qoomon/docker-host ) 图像是最近几个月发布的,无需任何手动配置即可使用。十分简单!

经过一天的努力,终于找到了解决办法。可以通过 --添加主机 docker run 中的标志命令或 额外主机 docker-compose.yml为本地 ( lo | 127.0.0.1 ) 网络接口(interface)创建别名的文件。

所以这里是说明:

  • 首先,为 lo 创建一个别名界面。如您所知,ifconfig命令在 Ubuntu 18.04 上不存在,所以我们这样做:
  • sudo ip addr add 192.168.0.20/24 dev lo label lo:1
  • 然后,把它戴在你身上 docker-compose.yml 文件:
  • extra_hosts:
    - "otherhost:192.168.0.20"

    如果 你不是 使用 Docker Compose,您可以通过 --add-host 将主机添加到容器中旗帜。就像是 docker run container-name --add-host="otherhost:192.168.0.20"
  • 最后,当您完成上述步骤后,使用 docker-compose down && docker-compose up -d 重新启动您的容器。或 docker-compose restart

  • 现在您可以登录到您的容器 ( docker-compose exec container-name bash ) 并对其进行测试。

    注意 : 使用 telnet [interface-ip] [port] 确保您的工作端口已打开命令。

    关于docker - 在 Ubuntu 18.04 上访问 Docker 容器中的主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53690702/

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