Docker编写设置主机名

Docker编写设置主机名,docker,docker-compose,httpd.conf,Docker,Docker Compose,Httpd.conf,我有下面显示的apache服务器的基本docker compose.yml。我想知道是否有办法配置这个apache服务器,目前可以使用0.0.0.0:8889或localhost:8889访问它,那么是否可以使用自定义主机名访问它,例如:local.foobar.dev version: '3' services: snappyweb: image: php:7.0-apache ports: - "8889:80" volumes:

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

version: '3'

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

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

127.0.0.1       local.foobar.dev

对于容器之间的通信,可以创建docker网络并将容器添加到此网络。然后,容器可以使用容器名称相互联系。

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

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


为此,我使用(osX)或您可以使用(Windows)

嗨,谢谢你的回复。我试过了。那没用。同样的结果。另外,尝试查看是否存在docker compose特定解决方案/但不是必需的。@AnchovyLegend您的容器应该可以使用
local.foobar.dev:8889
访问。至于docker compose解决方案,据我所知,没有从主机到达容器的解决方案,但是从其他容器检查更新的答案。感谢Andrew的建议。我试着下载它,它似乎工作正常。但它似乎不接受端口号。知道为什么吗?这很有效。技巧似乎是从GasMask主机配置文件中省略端口号,然后根据需要将其添加到浏览器中的URL等。更改
etc/host
文件只会影响DNS解析及其相应的IP地址。不是他们的港口。在典型的服务器中,端口默认为80,用于公共通信。如果你想搞乱端口,我建议你读这篇文章()。