gpt4 book ai didi

docker - 如何为 Docker 容器分配主机名?

转载 作者:行者123 更新时间:2023-12-02 19:10:37 26 4
gpt4 key购买 nike

我在 Windows 上运行 Docker(不是 native 版本。即通过 docker-machine 在 VM 上运行的版本)。

目前我有这样的访问网站:

192.168.99.100:8080 for website 1

192.168.99.100:8081 for website 2

192.168.99.100:8082 for website 3

出于显而易见的原因,这是一个真正的痛苦。

我希望能够像以前使用 Apache 虚拟主机那样做,我在其中修改了 hosts文件,然后可以输入类似: website1.dev .

如何为 Docker 容器执行此操作?

我的第一个解决方案是简单地将以下内容附加到我的 Windows 机器上的主机文件中,如下所示:
192.168.99.100 docker.dev

然而 docker.dev只会转发到 192.168.99.100:80 (即网站 1),因为您不能在主机文件中放置端口。

最佳答案

192.168.99.100 是 docker 机器的 IP:要为该 IP 分配名称,您需要修改 Windows hosts file你自己。

并且假设 docker 机器 VM 的 IP 已修复:请参阅 my script at this answer .

要真正重定向到 VM 中正确的 Apache 服务器,您需要另一个容器,它将:

  • 默认监听80端口
  • 分析 url 和代理传递(重定向)到正确的实际 url:port。
    http://website1.dev => redirect to port 8080
    http://website2.dev => redirect to port 8081
    http://website3.dev => redirect to port 8082

  • (与 website1.devwebsite2.devwebsite3.dev 都添加到 Windows 主机文件中,具有相同的 url 192.168.99.100)

    例如,检查 traefik

    如其他容器所见,这与容器的主机名不同。

    docker-compose extra-host 确实相当于 docker run --add-host

    但是一个 docker-compose can use hostname: directly将主机名固定到容器。
    这应该足以通过名称引用每个容器。

    关于docker - 如何为 Docker 容器分配主机名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38799241/

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