【问题标题】:Docker Compose setting HostnameDocker Compose 设置主机名
【发布时间】:2017-09-03 15:36:16
【问题描述】:

我有下面显示的基本docker-compose.yml 用于 apache 服务器。我想知道是否有办法配置这个 apache 服务器,目前可以使用 0.0.0.0:8889 或 localhost:8889 访问它,那么它是否可以使用自定义主机名访问,例如:local.foobar.dev? /p>

version: '3'

services:
    snappyweb:
      image: php:7.0-apache
      ports:
        - "8889:80"
      volumes:
        - ./:/var/www/html

【问题讨论】:

    标签: docker docker-compose httpd.conf


    【解决方案1】:

    我假设您希望这仅适用于您的本地开发环境。

    最简单和最安全的方法是使用一个应用程序,该应用程序基本上会诱使您的本地浏览器认为选择的 URL 是某个 IP 地址。该 IP 可能是locahost:8000

    为此,我使用GasMask (osX) 或者您可以使用Host File Manager (Windows)。

    【讨论】:

    • 感谢安德鲁的建议。我尝试下载它,它似乎工作正常。但它似乎不接受端口号。任何想法为什么?
    • 这很好用。诀窍似乎是从 GasMask 主机配置文件中省略端口号,然后根据需要将其添加到浏览器中的 URL 等中。
    • 更改 etc/host 文件只会弄乱 DNS 解析及其对应的 IP 地址。不是他们的端口。在一个典型的服务器中,端口是默认的,80 用于公共流量。如果您想弄乱端口,我建议您阅读这篇 SO 帖子 (serverfault.com/a/54371/421371)。
    【解决方案2】:

    如果您需要使用自定义名称从您的主机访问您的容器,您需要手动在 local.foobar.dev 和所需 IP 之间进行映射,方法是将以下行添加到 /etc/hosts

    127.0.0.1       local.foobar.dev
    

    对于容器之间的通信,您可以创建一个 docker 网络并将容器添加到该网络。然后容器可以使用容器名称相互访问。

    【讨论】:

    • 您好,感谢您的回复。我试过了。那没有用。同样的结果。另外,尝试查看是否有 docker-compose 特定解决方案/但不是必需的。
    • @AnchovyLegend 您的容器应该可以使用local.foobar.dev:8889 访问。至于 docker-compose 解决方案,据我所知,没有从主机到达容器的解决方案,但从其他容器检查更新的答案。
    猜你喜欢
    • 1970-01-01
    • 2015-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-09
    • 1970-01-01
    • 2022-06-15
    • 1970-01-01
    相关资源
    最近更新 更多