😸

dockerでコンテナ間の通信ってどうやるの?(設定方法・利用方法)

2024/09/09に公開

dockerのコンテナ間のネットワークを学んだ際のメモです。

摘要

  • コンテナ間の通信はネットワークが必要
  • 利用する場合はドメインをコンテナ名に設定する

全体像

  • ネットワークを作成
  • テスト用にコンテナを2つ作成
  • pingしてみる

ネットワークを作成

$ docker network create my-network
確認方法
$ docker network ls

コンテナを2つ作成

$ docker run -d --name container1 --network my-network ubuntu sleep infinity
$ docker run -d --name container2 --network my-network ubuntu sleep infinity
コマンドの説明
  • 「-d」・・・バックグラウンドで起動
  • 「--name」・・・・コンテナ名
  • 「--network」・・・接続するネットワーク
  • 「ubuntu」・・・dockerイメージ
  • 「sleep infinity」・・・コンテナ起動後に実行するコマンド(ないとコンテナが終了して接続できない)

pingしてみる

$ docker exec -it container1 bash
root@b8b510dbf406:/ #apt-get update
root@b8b510dbf406:/ #apt-get install -y iputils-ping
root@b8b510dbf406:/ #ping container2
PING container2 (192.168.48.5) 56(84) bytes of data.
64 bytes from container2.my-network (192.168.48.5): icmp_seq=1 ttl=64 time=0.515 ms
64 bytes from container2.my-network (192.168.48.5): icmp_seq=2 ttl=64 time=0.080 ms
64 bytes from container2.my-network (192.168.48.5): icmp_seq=3 ttl=64 time=0.064 ms

Discussion