スポンサーリンク

Docker Desktop for Windowsを試してみる(9)dbコンテナ内のpostgresqlの中身を確認する

Windows10にDockerでRails5.1+Posgresql環境を構築し、Railsチュートリアル第4版(Rails 5.1)を写経しています。

本書では、AWS Cloud9下でdevelopmentではsqlite3を用いていますが、上記環境では、developmentもpostgresql(dbコンテナ)なので、postgresqlの中身を見るためにはどうすればよいか調べてみました。

スポンサードリンク

Docker Desktop for Windows目次

  1. (1)WSL2とWindows Desktopのインストール
  2. (2)Swiftコンテナを作成してSwiftを動かしてみる
  3. (3)Windows10でWindowsとwsl2間でのファイルのコピー
  4. (4)Windows10+WSL2+DockerDesktopでJupyterLab環境構築してみる
  5. (5)Windows10+WSL2+DockerDesktopでWordPressを環境構築してみる
  6. (6)Windows10+WSL2+DockerDesktopでRuby on Rails7+PostgreSQLを環境構築してみる【2022年1月時点】
  7. (7)Windows10+WSL2+DockerDesktop + Ruby on Rails7をHerokuにデプロイ
  8. (8)Railsチュートリアル第4版(Rails5.1)の環境構築【2022年1月時点】
  9. (9)dbコンテナ内のpostgresqlの中身を確認する
  10. (10)ProgateのRubyonRails5学習レッスンの環境構築【2022年1月時点】

開発環境

Windows 10 Pro 21H1
Hyper-Vを有効化
Windows Docker Desktop 4.0.0
VisualStudioCode (wsl用の拡張機能インストール済み)

WSL2 Ubuntu 20.04 LTS
VisualStudioCode (+拡張機能 )

『Wndows Docker Desktop』+『WSL2のUbuntu』+VSCodeのセットアップについては「Docker for Windowsを試してみる(1)WSL2とWindows Desktopのインストール」をご参照ください。

さらに、Docker Desktop for Windowsを試してみる(8)Railsチュートリアル第4版(Rails5.1)の環境構築【2022年1月時点】でRails5.1+Postgresql環境を構築した状態です。

今回やりたいこと

Railsチュートリアル第4版(Rails 5.1)第6章の6.3.4ユーザーの作成と認証において、rails consoleでusersテーブルに保存したデータを見る

→ Docker Composeで作成したdbコンテナ(postgresql)内のdevelopmentのusersテーブルの中身を見にいく。なお、docker-compose.ymlは以下のようになっています。

version: "3.9"
services:
  db:
    image: postgres
    volumes:
      - ./tmp/db:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: password
  web:
    build: .
    command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
    volumes:
      - .:/myapp
    ports:
      - "3000:3000"
    depends_on:
      - db

→ POSTGRERS_PASSWORD は “password”となります。

docker-compse upした状態で、dbコンテナに入る

  1. WindowsのスタートボタンからDocker Desktopを起動
  2. WSL2を起動し、VisualStudioCodeを起動
  3. Ctrl+@でターミナル画面を開き、 docker-compose up -dでwebコンテナ(Rails)と、dbコンテナ(postgresql)を作成
  4. docker-compose exec db bashでdbコンテナに入る。
docker-compose up -d
docker-compose exec db bash

root@xxxxxx となれば、dbコンテナ内に入れています。

dbコンテナ内のPostgresqlにログインする

dbコンテナ内に入った状態で、以下を入力します。password は表示されません。

psql -U postgres -h db -d postgres
password

postgres=# となっていれば、postgresqlの中に入れています。

データベース、テーブルの順に移動し、usersテーブルの中身を確認する

postgresqlにログインできたら、以下のコマンドを順に入力します。

\l
\c myapp_development
\d
\d users;
SELECT * FROM users;

usersテーブルに、id=1のデータが入っていることが確認できます。

なお、コマンドの意味は以下のようになっています。

\l             :データベース一覧表示
\c myapp_development     :myapp_developmentデータベースに切り替え
\d            :テーブル一覧表示
\d users;         :usersテーブルのスキーマの詳細を表示
SELECT * FROM users;     :usersテーブルの中身を表示

なお、終了するときは、以下のコマンドを入力します。

exit

参考

06.railsチュートリアル

10.WindowsにDockerでpostgresql

https://dev.classmethod.jp/articles/postgresql-organize-command/
[PostgreSQL] よく使うコマンドまとめ
宇都宮 洋
2016.07.29

https://qiita.com/H-A-L/items/fe8cb0e0ee0041ff3ceb
@H-A-L
更新日 2021年10月15日
PostgreSQLの基本的なコマンド

https://dotinstall.com/lessons/basic_postgresql
PostgreSQL入門

https://note.com/kakidamediary/n/naa4cc945f9c2
docker上に構築したpostgreSQLに接続する方法のこのこ2020年8月6日

スポンサーリンク