LoginSignup
1
0

More than 1 year has passed since last update.

WSL上でdocker-composeを使ってPostgreSQLのサーバーを作るまでに躓いたこと

Last updated at Posted at 2021-10-14

はじめに

こちらの記事の写経をしているとdocker-compose周りがWSL上にあるのでつまづきました。解決法をメモ書きしておきます。

docker-composeを使えるようにする

docker-composeapt-getでインストールしましたが、デーモンが起動していなかったため、docker-composeが実行できませんでした。以下のコマンドを入力してデーモンを立ち上げます。

sudo cgroupfs-mount
sudo usermod -aG docker $USER
sudo service docker start

docker-compose.ymlを用意する

内容はこちらの記事のものと同じです。今後の作業で利用するユーザー名やパスワードなどは同じ階層にある.envファイルに書かれているものが使われます。

DBの確認

ブラウザからlocalhost:80に接続し、PostgreSQLにログインします。このとき、.wslconfigで以下のように指定してあります。

[wsl2]
memory=8GB
swap=0
localhostForwarding=True

特に重要なのが3行目のlocalhostForwarding=Trueです。これによりポートフォワーディングを行っています。この設定により、ホストOSのブラウザからlocalhost:80でPosgreSQLにアクセスすることができるようになります。

ここで躓いたのがサーバーを作成する際の「ホスト名/アドレス」に入力する内容です。ここにはPostsqlサーバーへのIPアドレスを入力する必要があります。このIPアドレスはdocker inspect [PostgreSQLのコンテナID]のNetworkSettings->Networks->Gatewayに書かれているものを使えば接続することができます。[PostgreSQLのコンテナID]docker psで取得できます。

おわり

ほとんどこちらの記事を写経したときの日記になってしまいましたが、同じように困っている方の参考になれば幸いです。

参考文献

docker-composeを使うきっかけになった記事: PythonのフレームワークFlaskを使用してWebアプリ作成の物語(3)Docker登場 DBの準備

dockerのデーモンの起動方法: WSLのdocker daemonを自動起動させる

1
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
1
0