web-dev-qa-db-ja.com

ドメイン名をDockerコンテナーにマッピングするためのベストプラクティス

特定のドメイン名からDockerコンテナーを提供するための「ベストプラクティス」とは何ですか?

例えば:

  • Container1はポート8080でアプリAを実行し、AwesomeAppA.com経由でアクセスします
  • Container2はApp Bをポート8090で実行し、AwesomeAppB.com経由でアクセスします

次に、たとえば次のことができます。

  1. たとえば、コンテナーにGunicorn/uWSGIが使用するポートを公開し、Docker Hostで Nginx を使用してプロキシを処理します。
  2. ただし、コンテナでNginxを内部的に実行して HAProxy を使用することもできます。

しかし、どちらが良いですか?他に推奨されるオプションはありますか、それとも本当に個人的な好みですか?

オプション1は単一責任の原則に準拠しており、コンテナー内でアプリケーションを実行して、ホストにプロキシーを処理させることができます。 NginxでSSLを処理することもできますが、「docker run」だけでなく、追加のセットアップとプロビジョニングが必要です。

6
robodude666

Dockerの原則によるベストプラクティスは、単一責任の原則に従うことです。

つまり、オプション1が推奨される方法です。

この背後にある理論的根拠については この興味深い記事 を参照してください

これに加えて、ビジネスニーズにより適した方法でDockerを使用できます。

1
tommasop