DockerコンテナーDNSの設定 - Cloud

Talend Remote Engine Gen2クイックスタートガイド

author
Talend Documentation Team
EnrichVersion
Cloud
EnrichProdName
Talend Cloud
task
インストールとアップグレード
デプロイメント > デプロイ中 > パイプラインの実行
EnrichPlatform
Talend Management Console
Talend Pipeline Designer

Dockerが仮想マシン(Docker for Mac、Docker for Windows)で実行される場合、デフォルトのコンテナーDNS設定は物理マシンの設定とは異なります。その場合は、Remote Engine Gen2に含まれているDocker設定ファイル内のDNSを設定する必要があります。

手順

  1. Remote Engine Gen2のインストールディレクトリーに移動し、docker-compose.ymlファイルを開いて編集します。
  2. 設定方法:
    1. 動的DNSレゾリューションの設定: dnsセクションにネームサーバーを追加するか、dns_searchセクションにサフィックスを追加します。サフィックスは、DNSレゾリューション用にホスト名に自動的に追加されます。dns_searchセクションにリスト表示されているエントリーが、各コンテナーの/etc/resolv.confファイル内に表示されます。

      例え

      dns:
        - 8.8.8.8
        - 9.9.9.9
      dns_search:
        - dc1.example.com
        - dc2.example.com
    2. 静的DNSレゾリューションの設定: extra_hostsセクションにエントリーを追加します。これらのエントリーは、各コンテナーの/etc/hostsファイルに自動的に追加されます。
      注: 2つのRemote Engine Gen2コンテナー(livycomponent-server)は外部接続を必要とするため、両方にDNS設定が必要になる場合があります。

      例え

      extra_hosts:
       - "somehost:162.242.195.82"
       - "otherhost:50.31.209.229"
  3. ファイルを保存します。

タスクの結果

docker-compose.ymlは次のようになります。
version: '3.6'

networks: ...

volumes:...

services:
 ...
 component-server:
  image: ${COMPONENTS_IMG}
  ...
  labels:...
  dns:
  - 8.8.8.8
  - 9.9.9.9
  dns_search:
  - dc1.example.com
  - dc2.example.com  
  extra_hosts:
  - "somehost:162.242.195.82"
  - "otherhost:50.31.209.229"
...

このトピックの詳細は、Dockerのドキュメンテーションを参照してください。

詳細情報:

Remote Engine Gen2のサービスは、remote-engine_defaultというユーザー定義のブリッジネットワーク上でDockerコンテナーとして実行されます。
ヒント: ユーザー定義のこのブリッジがあるかどうかは、コマンドdocker network lsを実行して確認できます。
Dockerバージョン1.10の段階では、ユーザー定義のブリッジネットワークにはDNSサーバーが組み込まれています。詳細は、埋め込みDNSサーバーユーザー定義のネットワークに関するDockerのドキュメンテーションを参照してください。

ランタイムで指定されるオプションによっては、Dockerコンテナー用のDNSサービスレゾリューションに影響を与えることがあります。ただし、そのようなオプションが使われていない場合、デフォルト動作としてDockerはホストマシンの/etc/resolv.confを使います。ホストマシンはDockerのデーモンが実行される場所です。物理マシン上ではDockerを実行できず、仮想マシン上で実行しなければならない場合があります。DockerコンテナーDNSをdocker-compose.ymlファイル内で手動で設定する場合があるのはそのためです。