Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What are the problem?

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

はじめに

こちらの記事の写経をしていると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を自動起動させる

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
0
Help us understand the problem. What are the problem?