Docker Compose の Network alias を使用して Container に別名でアクセスする

Docker Compose で複数の Nginx コンテナを設定し、Network alias を使用した名前解決をテストする方法のメモ。dig コマンドを使って、指定した Alias が正しく IP アドレスに解決されるかを確認します。

ogawaAugust 27, 2024

次の内容で compose.yml を作成します。

version: "3"
services:
  nginx1:
    image: nginx:latest
  nginx2:
    image: nginx:latest
    networks:
      default:
        aliases:
          - nginx2.playground.local

container2 には aliases として container2.playground.local を指定しています。 それぞれの名前が解決できるかと確認してみます。

まず、docker compose を起動して、nginx1 に Shell ログインします。

docker compose up -d
docker compose exec nginx1 bash

dig コマンドをインストールします。

apt update
apt install dnsutils -y

nginx2 で名前解決できます。

 dig +short nginx2
172.19.0.2

nginx2.playground.local でも名前解決できます。

 dig +short nginx2.playground.local
172.19.0.2

いずれも同じ IP が解決できていることが確認できました。