Docker Compose の networks 超簡単メモ
これは何?
コンテナ同士を“同じグループ(LAN)”に入れて名前解決&通信できるようにする仕組み。
同じ network → コンテナ名でアクセス可。違う network → 原則見えない。
よく使うパターン
既存ネット(他プロジェクト)に参加しつつ、自前ネットも欲しいとき。
※例:CakePHP で EC-CUBE のDBを参照したい時
services:
web:
# ...略...
networks:
- cakephp-network
- ec-cube-network # 既存ネット (external)
networks:
cakephp-network:
driver: bridge
ec-cube-network:
external: true
name: ec-cube-new_backend
web は両方に所属=両側と会話できる。
DB につなぐとき
host はホストマシンではなく MySQL コンテナ名(例: ec-cube-new-mysql-1)。
ポートは内部ポート 3306 を使う(公開された 13306 ではない)。
よく使うコマンド
docker network ls
docker network inspect ec-cube-new_backend
docker network connect ec-cube-new_backend <container>
docker network disconnect ec-cube-new_backend <container>
典型エラー早見
- 名前解決失敗 → 同じ network に入ってない
- Connection refused → サービス未起動 or ポート違い
- Access denied → DB ユーザー権限未設定
覚えること
network = 通信グループ
external = 既存ネット再利用
DB host = コンテナ名 / port = 内部ポート
以上で OK。
※この記事はAIに書いていただいています。