前回(第2回)は、Apache httpdのCompose環境を例に、シンプルな開発環境の構築方法を学びました。今回取り上げるのは、Dockerに対応したアプリケーションを考える上で欠かせない、コンテナ間のDocker内部ネットワークと名前解決についてです。 名前空間(namespace)の分離とコンテナ間通信 通常のLinuxホスト上では、複数のプロセスがポートを重複して開くことはできません。たとえば、ApacheとNginxはデフォルトでTCPポート80番を使用しますが、それぞれが同じTCPポート80番を同時に使用できません。 一方で、複数のプロセスをコンテナとして動かせば、お互いの動作には何ら影響がありません。コンテナとして実行すると、PIDなどの名前空間が隔離(isolate)され、お互いのプロセスが見えない状態で動作するからです。それだけでなく、コンテナごとにネットワークも隔離さ