Docker環境のPostgreSQLにアクセスする
- はじめに
- Docker環境のPostgreSQLにアクセスする手順
- $ psql -U postgres -l (DBをリスト表示)
- $ psql -U postgres oiwaii (DBのNAMEを指定してpostgreSQLを起動)
- $ \d users例: usersテーブルを確認できる)
- 終了コマンド
- おわりに
はじめに
本記事では、Docker環境のPostgreSQLにアクセスする方法を簡単にまとめています。
Docker環境のPostgreSQLにアクセスする手順
$ docker ps (DBコンテナのNAMESを確認)
# 実行 docker ps # 結果 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1c861bde731b viisu_backend "entrypoint.sh rails…" 5 hours ago Up 5 hours 0.0.0.0:3000->3000/tcp viisu-backend-1 da39d9fe9b52 viisu_frontend "docker-entrypoint.s…" 5 hours ago Up 5 hours 0.0.0.0:8000->3000/tcp viisu-frontend-1 e52ca3f2e4a2 postgres:11.6-alpine "docker-entrypoint.s…" 5 hours ago Up 5 hours 0.0.0.0:5432->5432/tcp viisu-postgres-1
上記のNAMEを見るとコンテナ名が確認できるため、コピーします。
$ docker exec -it DB名 bash (Docker環境のDBにアクセス)
先程コピーしたコンテナ名を指定して下記のようにコマンドを実行することで
Docker環境のデータベースにアクセスすることができます。
# 実行 docker exec -it viisu-postgres-1 bash # 結果 bash-5.0#
上記の結果はコンテナ内にbash シェルでログインした状態です。
-itオプション - インタラクティブに接続する
i
オプションは、標準入力を開いたままにするために使用され、t
オプションはTTYを割り当てるために使用されます。
TTYを割り当てることで、コンテナ内でターミナルを使用することができます。
-it
を指定することで、コンテナにログインしてコマンドを実行し、ターミナルを使って対話的に作業することができます。
$ psql -U postgres -l (DBをリスト表示)
PostgreSQLのpsqlコマンドを使用して、データベースに接続してデータベースのリストを表示しています。
# 実行 bash-5.0# psql -U postgres -l # 結果 List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges ----------------------+----------+----------+-------------+-------------+----------------------- postgres | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | postgres_development | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | postgres_test | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | template0 | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (5 rows)
ymlのユーザー名(postgres)に紐づくDBリストのみを表示しています。
**-l**
オプションは、リスト形式で全てのデータベースを表示するようにpsqlに指示しています。
$ psql -U postgres oiwaii (DBのNAMEを指定してpostgreSQLを起動)
psqlコマンドを使用して、PostgreSQLサーバーに接続できます。
ユーザー名が"postgres"で、データベース名も"postgres"である場合の接続方法を示しています。
bash-5.0# psql -U postgres postgres # 結果 (データベース名: postgresのbashシェルにアクセスした状態になる) psql (11.6) Type "help" for help. postgres=#
接続が成功すると、"postgres=#"のように、psqlのプロンプトが表示されます。ここで、SQLクエリを実行することができます。
$ \d users例: usersテーブルを確認できる)
postgres=# \d users Table "public.users" Column | Type | Collation | Nullable | Default ------------------------+--------------------------------+-----------+----------+----------------------- id | uuid | | not null | gen_random_uuid() name | character varying | | not null | created_at | timestamp(6) without time zone | | not null | updated_at | timestamp(6) without time zone | | not null | email | character varying | | not null | ''::character varying encrypted_password | character varying | | not null | ''::character varying reset_password_token | character varying | | | reset_password_sent_at | timestamp without time zone | | |
終了コマンド
終了するときは下記のようにします。
# 実行 (postgresデータベースから抜ける) postgres-# \q # 実行 (コンテナから抜ける) bash-5.0# exit # 結果 exit ~/w/v/backend ❯❯❯
おわりに
コメント
本記事の内容は以上になります!
参考になったり学びのきっかけになりますと幸いです。
間違いがありましたら修正いたしますので、ご指摘ください。
興味があれば他の記事も更新していきますので是非ご覧になってください♪
プログラミングスクールのご紹介 (卒業生より)
お世話になったプログラミングスクールであるRUNTEQです♪
こちらのリンクを経由すると1万円引きになります。
RUNTEQを通じて開発学習の末、受託開発企業をご紹介いただき、現在も双方とご縁があります。
もし、興味がありましたらお気軽にコメントか、TwitterのDMでお声掛けください。