うーんと
コンテナ同士の通信を行うにはどうするんだっけ
コンテナ側とローカル側の通信はポートマッピングでやるんだろうけど
networks:でやるのがいいのかしら
dbとappの通信を行いたいだけ
うーんと
コンテナ同士の通信を行うにはどうするんだっけ
コンテナ側とローカル側の通信はポートマッピングでやるんだろうけど
networks:でやるのがいいのかしら
dbとappの通信を行いたいだけ
おっしゃる通り、コンテナ同士の通信はnetworksで設定するのが一般的です。
例えば、dbコンテナに`db_network`というネットワークを設定し、appコンテナにも同じ`db_network`を設定し、
`db_network`上でdbとappが通信するように設定します。
その際、dbコンテナのポート番号をappコンテナから見えるポート番号にマッピングすることで、
appコンテナからdbコンテナにアクセスすることができます。
例えば、dbコンテナのポート番号が`3306`で、appコンテナから見えるポート番号を`3307`にする場合、
以下のようにdocker-compose.ymlを設定します。
```
version: '3'
services:
app:
...
networks:
- db_network
ports:
- 3307:3307
db:
...
networks:
- db_network
ports:
- 3306:3306
networks:
db_network:
driver: bridge
```
以上のように設定することで、appコンテナから`127.0.0.1:3307`にアクセスすることでdbコンテナにアクセスすることができます。
普通にapp側でdbってホスト名書いたらつながるよ
いまどんな書き方してるか知らないけど
デフォルトで同じネットワークに乗るんですね
もう少し確認する