2.2.5. IP アドレスおよび命名サービス

Red Hat Quay でコンポーネントのコンテナーを設定し、それらが相互に通信できるようにする方法は多数あります。

  • コンテナーの IP アドレスの使用: podman inspect でコンテナーの IP アドレスを判別してから、接続文字列を指定する際に設定ツールでこれらの値を使用します。以下は例になります。

    $ sudo podman inspect -f "{{.NetworkSettings.IPAddress}}" postgresql-quay

    この方法は、コンテナーの IP アドレスが再起動後に変更されるためにホストの再起動の影響を受けます。

  • 命名サービスの使用: (通常は IP アドレスの変更が生じる) コンテナーの再起動後もデプロイメントを維持する必要がある場合は、命名サービスを実装できます。たとえば、dnsname プラグインは、コンテナーが名前で相互を解決できるように使用されます。
  • ホストネットワークの使用: podman run コマンドを --net=host オプションを使用して使用してから、アドレスを設定に指定する際にホストでコンテナーのポートを使用できます。このオプションを使用すると 2 つのコンテナーが同じポートを使用しようとする場合にポートの競合が生じるため、このオプションは推奨されません。
  • ポートマッピングの設定: ポートマッピングを使用してホストでポートを公開し、これらのポートをホスト IP アドレスまたはホスト名と組み合わせて使用できます。

本書では、ポートマッピングを使用し、ホストシステムの静的 IP アドレスを使用することを前提としています。このデプロイメントでは、システムの IP アドレス 192.168.1.112quay-server.example.com を使用し、/etc/hosts ファイルでこの情報を設定します。

$ cat /etc/hosts
...
192.168.1.112   quay-server.example.com
コンポーネントポートマッピングアドレス

Quay

-p 80:8080 -p 443:8443

http://quay-server.example.com

Postgres for Quay

-p 5432:5432

quay-server.example.com:5432

Redis

-p 6379:6379

quay-server.example.com:6379

Postgres for Clair V4

-p 5433:5432

quay-server.example.com:5433

Clair V4

-p 8081:8080

http://quay-server.example.com:8081