ネットワーク構成

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
  • NGINX reverse proxy で、Internet からの https アクセスを受け付けて、バックエンドの Apache Pukiwiki と Growi に振り分けたい
  • 異なる Docker Compose 間を接続するために、共有の DMZ ネットワークに Webサーバを接続する
  • バックエンドの Squid や Elasticsearch は、各 Docker Compose 内の Trust ネットワークを使う

DMZ ネットワークの作成

$ docker create network dmz
  • Docker Compose でコンテナを立ち上げた最終形態はこんな感じ
    $ docker network ls NETWORK ID NAME DRIVER SCOPE 1f76eb0ffcbf bridge bridge local 13f16c2f099d dmz bridge local 19694a0411e0 growi-docker-compose_trust bridge local 6a7c8ecfd966 host host local 6ab7c19d7c38 none null local 888f98fc1f2c pukiwiki_trust bridge local
    • DMZ の他に growi の trust ネットワーク、pukiwiki の trust ネットワークが見受けらえる
  • DMZ は Demilitarized Zone。非武装地帯。コントロール下にある Trust ネットワークと、有象無象が跋扈する Internet との中間ネットワーク

host.docker.internal では厭かんの?

  • docker の起動オプションに --add-host host.docker.internal:host-gateway を指定すると、コンテナの /etc/hosts に ホストマシンの (dockerネットワーク上の) IP アドレスを引くためのエントリーが追加される
    • /etc/hosts
    172.17.0.1 host.docker.internal
  • これを使えば、Nginx から host.docker.internal:3000 で Growi、host.docker.internal:10080 で Pukiwiki にアクセスとかできんの?
    • ⇒ できません
    • なぜなら Nginx が /etc/hosts を見ずに (dockerネットワークの) DNSサーバで名前解決をしちゃうから