在Docker内部运行的主机名

我是docker工人,我的问题类似于:

我的网站在Docker容器中运行,如何实现虚拟主机?

但是我实际上并不需要使用不同的虚拟主机托pipe多个站点。 我只需要让服务器响应一个特定的虚拟主机名,例如:myhost.mysite.com

目前,该网站可以通过IP正常工作,但在使用主机名时不会响应。 由于我只有一个站点/主机名,我必须设置一个代理问题中所述?

我已经尝试添加一个-h myhost.mysite.com到我的docker运行命令,但这似乎没有任何区别。

PS。 主机名DNS确实正确地parsing为泊坞窗服务器的IP地址。

这真的取决于容器内运行的Web服务器。

  • Apache:使用ServerName和可能的ServerAlias
  • Nginx:使用server_name
  • Django:使用ALLOWED_HOSTS

实际上,Docker并不需要知道。 HTTP服务器软件需要知道。

您链接的问题涉及多个网站,这就是为什么需要代理。 如果你只运行一个站点,代理是没有必要的(至less,不是这个目的)。 只要让Docker监听端口80和/或443本身,并让内部运行的服务器软件决定哪些主机名对站点有效。