タイトルが長すぎて「何言ってんだコイツ」となりそうなので
図解しました↓。
こういうことがしたい。
まず、以下のような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のデータベースにアクセスできるようになります。
おわり
コメント