0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Docker】コンテナ間でDBを共有したい場合

Last updated at Posted at 2025-09-19

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に書いていただいています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?