将域名映射到 Docker 容器的最佳实践

将域名映射到 Docker 容器的最佳实践

从特定域名提供 Docker 容器的“最佳实践”是什么?

例如:

  • Container1 在端口 8080 上运行应用程序 A,并通过 AwesomeAppA.com 访问
  • Container2 在端口 8090 上运行应用程序 B,并通过 AwesomeAppB.com 访问

然后您可以:

  1. 例如,让你的容器公开 Gunicorn/uWSGI 使用的端口,然后使用Nginx在docker主机上处理代理。
  2. 但你也可以让你的容器在内部运行 Nginx 并使用HAProxy

但哪个更好呢?还有其他更好的选择吗?还是这真的取决于个人喜好?

选项 1 符合单一责任原则,允许您在容器中运行 1 个应用程序并让主机处理代理。它还允许 Nginx 处理 SSL,但除了“docker run”之外还需要额外的设置和配置。

答案1

Docker 原则的最佳实践是遵循单一职责原则。

也就是说,选项 1 是首选方法。

欲了解其背后的原理,请参阅这篇有趣的文章

除此之外,您还可以按照您认为更适合您业务需求的方式使用 Docker。

相关内容