dockerコンテナ内からホストを介してcloud sqlに接続する方法

docker

苦戦しましたがやり方はシンプルなのでドキュメントとして残しておきます。

1,Cloud SQL API を有効にする
2,プロキシをインストールする
3,サービス アカウントを作成する
4,プロキシを開始する

まずは、google公式をみてproxy環境を整えます。
https://cloud.google.com/sql/docs/mysql/connect-admin-proxy?hl=ja

2,自分の環境に合わせてproxyをインストールしてください。

Cloud SQL Auth Proxy を使用して接続する  |  Cloud SQL for MySQL  |  Google Cloud

ちなみにgoogle sdkが入っていない方は入れてください。

次に、
./cloud_sql_proxy -instances=インスタンス接続名=tcp:3306

ホストから上のコマンドを実行します。
proxyが起動します。

インスタンス接続名は、google sqlの概要に記載してあります。

Ready for new connections
の表示が出たらproxyがオンになりました。

proxyをオンにした状態でないと接続ができないのでターミナル を複数使います。

次にコンテナに入ります。

docker exec -it コンテナID /bin/bash

を使用します。

そしてコンテナからホストIPを調べます。

ping host.docker.internal

上記のコマンドを叩くとホストにpingを送ります。

これで自身のホストIPがわかると思うので
コンテナ内から

mysql -u root -p --host ホストのIPアドレス
を実行するとcloud sqlに接続することができます。

コメント

タイトルとURLをコピーしました