タイトルが長すぎて「何言ってんだコイツ」となりそうなので
図解しました↓。

こういうことがしたい。
まず、以下のようなdocker-compose.ymlファイルを作る。
version: '3'
services:
mysqldazo:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: hoge
ports:
- '3306:3306'
#nodejsコンテナの部分は省略
Ctrl+Shift+Pを押してコマンドパレットを開き、Reopen in Container→docker-compose.ymlから開くを選択して、VScode経由でコンテナを立ち上げる。(自動的にpullしたりbuildしたりrunしたりされる。便利。)

コンテナ側のVScodeにMySQLの拡張機能を入れる。(MySQLという名前の拡張機能は2個ありますがダウンロード数が多いほうです)
エクスプローラー画面に行き、MYSQLという項目の右にある+ボタンを押す

以下のようなウィンドウが出てくるので、入力→Enterを何回か繰り返す。

- hostname:
- 上の
docker-compose.ymlの例で言うと、mysqldazoがhostnameになるみたいです
(コンテナ内では、「localhostと打つと127.0.01と名前解決される」と同じ感じで、「サービス名を打つとそのコンテナのIPアドレスで名前解決される」みたいな仕組みが発動しているらしい) - ちなみに、以下のようにRemote Container拡張機能を経由せずに、クライアントにインストールしたMYSQL拡張機能からアクセスする場合は
localhostでアクセスできます。

- 上の
- user:
rootを指定する
- password:
hogeを指定する。(docker-compose.ymlで指定した通り)
- port:
3306を指定する。(docker-compose.ymlで指定した通り)
これで、以下のようにMySQLのデータベースにアクセスできるようになります。

おわり
コメント