如何在主机客户端上的Docker容器中映射服务器名称apache?

时间:2019-07-14 18:09:28

标签: apache docker docker-compose virtualhost server-name

我有一个带有apache的docker容器,并为我的.conf文件配置了一个虚拟主机,从客户端test.dev调用未映射虚拟主机docker。如果我叫本地主机,它将正常工作。

谢谢!

<VirtualHost *:80>
    Servername test.dev
    SetEnv APPLICATION_ENV "development"
    DocumentRoot "/var/www/html/test/public"
    <Directory "/var/www/html/test/public">
             DirectoryIndex index.php
             AllowOverride All
             Require all granted
    </Directory>
</VirtualHost>

1 个答案:

答案 0 :(得分:0)

主机名无法“映射”到Docker容器。如果您确实想使用主机名在本地访问它,则可能需要将Host标头注入每个请求或使用您的主机文件。

注入主机标头

每当我想快速测试某项内容时,通常要做的就是使用curl。如果将容器绑定到主机上的端口8080:

curl -XGET -H "Host: test.dev" http://localhost:8080

配置主机文件

您必须将127.0.0.1 test.dev添加到主机文件。该路径是相对于您的操作系统的:

  • 在Windows上:c:\windows\system32\drivers\etc\hosts
  • 在Unix上:/etc/hosts

完成此操作后,您可以打开浏览器并转到http://test.dev:8080