2
1

More than 3 years have passed since last update.

psql のためだけに Docker を使う

Last updated at Posted at 2020-06-19

DB をホストするわけじゃないので PostgreSQL をインストールしたくないパーソンです。

すぐ忘れるのでメモ。

使い捨て

# docker image を pull
$ docker pull postgres

# コンテナ起動して bash へ(--rm で終了即コンテナ削除)
$ docker run --rm -it postgres /bin/bash

# psql を使うよ
root@xxxx:/# psql -h <host> -d <database> -U <user>
# いきなり psql で良かったわ
$ docker run --rm -it postgres psql -h <host> -d <database> -U <user>

コンテナ使いまわし(bash のコマンド履歴使いたい場合)

# docker image を pull
$ docker pull postgres

# コンテナ起動して bash へ(--name でコンテナに名前付けて消さない)
$ docker run --name psql -it postgres /bin/bash

# psql を使うよ
root@xxxx:/# psql -h <host> -d <database> -U <user>

# 抜け
root@xxxx:/# exit

# もう一度コンテナへ
$ docker start -ai psql

# 履歴使える
root@xxxx:/# psql -h <host> -d <database> -U <user>

コンテナを消すのは docker rm psql

応用: pg_dump を使う

 docker run --rm -it postgres pg_dump -h <host> -U <user> <datbase> > hostdir/backup.sql

(今まで、-v してコンテナ内部から pg_dump してたのがムダだと気づくのに、結構な日数を使ってしまったよ…。)
(あれ、でもなんかダンプした backup.sql の日本語が文字化けしてるな。。。)

restore も一発でやろうとしたんだけど…

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