ITの隊長のブログ

ITの隊長のブログです。Rubyを使って仕事しています。最近も色々やっているお(^ω^ = ^ω^)

dockerでpostgresqlを起動して遊ぶ

スポンサードリンク

まだ遊べていないのでログ残し

qiita.com

自分はpullで対応

$ docker pull postgresql:10.5

で、runしようとすると

$ docker run --rm --name=postgres -p 5432:5432 -e POSTGRES_PASSWORD=mysecretpassword -it postgres psql -U postgres
psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

なんやねんこれ?

/bin/bashしてみて、それで起動してみる.

$ docker run --rm --name=postgres -p 5432:5432 -e POSTGRES_PASSWORD=mysecretpassword -it postgres /bin/bash
root@badb9c06d26c:/#

root@badb9c06d26c:/# ps aux | grep postgres

どうやら起動してない模様

root@badb9c06d26c:/# service postgresql start
[warn] No PostgreSQL clusters exist; see "man pg_createcluster" ... (warning).

なるほど? ぐぐる

github.com

Ran following commands, and after that Postgres was running.

root@ee38e70bca23:/# dpkg-reconfigure locales root@ee38e70bca23:/# pg_createcluster 9.5 main --start root@ee38e70bca23:/# /etc/init.d/postgresql start

なるほど。手順通りたたく(バージョンは調整した

すると起動した!が、しかし、ログインに失敗する。

眠たいので続きは明日.

続き

上の原因はrootログインで失敗していたので

  1. su - postgresでpostgresユーザーに変更
  2. psql -U postgresでログイン、パスワード変更
  3. rootに戻り、postgres_hba.confmd5, trustに変更する。本番ではtrustは良くない
  4. postgres再起動する

メンドクサ!!!!ってなったのでimages削除して下記を対応したらできた。

qiita.com

つらい

volume作らないとコンテナ削除したとき一緒にデータが消えてしまうので、volumeを作る

qiita.com

DB作成とかテーブル作成はguiのclientアプリを使ったら簡単

qiita.com

以上、これでできた