0Pricing
DevOps Bootcamp · レッスン

カスタムブリッジネットワークとサービスディスカバリ

ユーザー定義ブリッジネットワークを作成し、コンテナ同士が名前で見つけて通信できるようにします。DockerによるDNSベースのサービスディスカバリの仕組みも学びます。

「カスタムブリッジネットワークとサービスディスカバリ」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全4レッスンが含まれています。

カスタムネットワークが必要な理由

デフォルトのbridgeネットワークでも動作しますが、そこに接続されたコンテナ同士はIPアドレスでしか通信できません。ユーザー定義ブリッジネットワークを使うと、DNSによるサービスディスカバリが自動的に機能し、コンテナ同士が名前で通信できるようになります。

  • アプリケーション群間の分離が向上する
  • 名前解決が組み込まれている
  • コンテナを実行中に接続・切断できる

既存ネットワークの一覧表示

Dockerには3つのデフォルトネットワークが用意されています。独自のネットワークを作成する前に、docker network lsで確認しましょう。

docker network ls

ブリッジネットワークの作成

docker network createを使います。ドライバーフラグを指定しない場合、Dockerはデフォルトでbridgeドライバーを使用します。これは単一ホスト上のコンテナに適しています。

docker network create app-net

ネットワークの確認

docker network inspectを使うと、サブネット、ゲートウェイ、接続されているコンテナがJSON形式で表示されます。IP範囲のデバッグに便利です。

docker network inspect app-net

ネットワーク上でのコンテナ実行

--networkを使うと、起動時にコンテナをネットワークへ接続できます。ここでは、他のコンテナが名前で見つけられるRedisコンテナを起動します。

docker run -d --name cache --network app-net redis:7

名前によるサービスディスカバリ

ユーザー定義ネットワークでは、Docker DNSによってコンテナの名前が解決されます。アプリケーションはIPアドレスを探す代わりに、ポート6379のホストcacheへ接続するだけで済みます。

docker run -it --network app-net alpine ping -c 2 cache

ネットワークエイリアス

--network-aliasを使うと、コンテナに追加のDNS名を付けられます。ラウンドロビンの背後で複数のコンテナが1つの論理名に応答する場合に便利です。

docker run -d --network app-net --network-alias db postgres:16

実行中のコンテナの接続

起動時にすべてを決めておく必要はありません。docker network connectを使うと、すでに実行中のコンテナを別のネットワークに接続できます。

docker network connect app-net web

ネットワークからの切断

同様に、docker network disconnectを使うと、コンテナを停止せずにネットワークから切断できます。

docker network disconnect app-net web

公開とポート公開の違い

同じカスタムネットワーク上のコンテナは、任意のポートで自由に通信できます。ホストからサービスへ接続するには、-p hostPort:containerPortでポートを公開します。

docker run -d --network app-net -p 8080:80 nginx

ネットワークのクリーンアップ

使っていないネットワークはdocker network rmで削除するか、未使用のネットワークを一度にすべてプルーニングできます。コンテナが接続されているネットワークは、先にそのコンテナを削除しないと削除できません。

docker network prune -f

理解度チェック

サービスディスカバリについて理解できたか確認しましょう。

まとめ

カスタムブリッジネットワークの作成と管理方法を学びました。

  • docker network createで、DNS機能を備えた分離ネットワークを作成する
  • コンテナ同士は名前または--network-aliasで通信する
  • connect/disconnectでコンテナを実行中に接続・切断する
  • -pでポートを公開し、使っていないネットワークをプルーニングする

名前によるサービスディスカバリは、Composeが自動的に構築する仕組みの基盤です。

よくある質問

「カスタムブリッジネットワークとサービスディスカバリ」レッスンは無料ですか?

はい。「カスタムブリッジネットワークとサービスディスカバリ」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。

「カスタムブリッジネットワークとサービスディスカバリ」で何を学びますか?

ユーザー定義ブリッジネットワークを作成し、コンテナ同士が名前で見つけて通信できるようにします。DockerによるDNSベースのサービスディスカバリの仕組みも学びます。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

DevOps Bootcampを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「カスタムブリッジネットワークとサービスディスカバリ」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このDevOps Bootcampレッスンでコードを書いて実行できますか?

はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. コンテナネットワークの基礎
  2. 永続化のためのDockerボリューム
  3. バインドマウントとtmpfsマウント
  4. カスタムブリッジネットワークとサービスディスカバリ
← DevOps Bootcampに戻る