ブラウザでpostgresqlを操作できるpgwebを試す


こんな画面が見れるやつ。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/33674/75162cda-6bbc-afa2-46ae-bfa228c26205.png)



# インストール

```yml:docker-compose.yml
version: "2"
services:
  pgweb:
    image: sosedoff/pgweb
    container_name: "pgweb"
    ports:
      - "8081:8081"
    depends_on:
      - db
  db:
    image: postgres:11.1-alpine
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: pgweb
    ports:
      - "5432:5432"
    container_name: postgres
    volumes:
      - "./postgres-data:/var/lib/postgresql/data"
```

* postgresの公式イメージによってPOSTGRES_USERにしたDBも作られる。[ライブラリ/ postgres \- Docker Hub](https://hub.docker.com/_/postgres/)

```bash
docker-compose up
pgweb    | Pgweb v0.9.12 (git: 9af721176bf7b41366f0de8251fff0b47da8fce3)
postgres | selecting dynamic shared memory implementation ... posix
postgres | creating configuration files ... ok
pgweb    | Starting server...
pgweb    | To view database open http://0.0.0.0:8081/ in browser
```

* 正常に起動できれば、8081で待受が始まる。

## データの投入

```bash
wget http://www.postgresqltutorial.com/wp-content/uploads/2017/10/dvdrental.zip
unzip dvdrental.zip
mv dvdrental.tar postgres-data/

docker-compose exec db bash
cd var/lib/postgresql/data/

psql -U postgres -c "CREATE DATABASE dvdrental;"
pg_restore -U postgres -d dvdrental dvdrental.tar
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 6; 2615 2200 SCHEMA public postgres
pg_restore: [archiver (db)] could not execute query: ERROR:  schema "public" already exists
    Command was: CREATE SCHEMA public;
WARNING: errors ignored on restore: 1
exit
```

# pgwebへアクセス


＜ホスト名orIP＞:8081 でブラウザでアクセスするとpgwebの画面が開く。

schemeタブへ移動して
`postgres://postgres:pgweb@＜ホスト名orIP＞:5432/postgres?sslmode=disable`
を入力




# 参考

[Docker一括削除コマンドまとめ \- Qiita](https://qiita.com/boiyaa/items/9972601ffc240553e1f3)

[CentOS 用 Docker CE の入手 — Docker\-docs\-ja 17\.06\.Beta ドキュメント](http://docs.docker.jp/engine/installation/linux/docker-ce/centos.html)
[Docker Compose — Docker\-docs\-ja 17\.06\.Beta ドキュメント](http://docs.docker.jp/compose/toc.html)
[Compose CLI リファレンス — Docker\-docs\-ja 17\.06\.Beta ドキュメント](http://docs.docker.jp/compose/reference/index.html)
[Compose ファイル・リファレンス — Docker\-docs\-ja 17\.06\.Beta ドキュメント](http://docs.docker.jp/compose/compose-file.html)

[Docker入門（第二回）～Dockerセットアップ、コンテナ起動～ \| さくらのナレッジ](https://knowledge.sakura.ad.jp/13795/)
[Docker入門（第六回）〜Docker Compose〜 \| さくらのナレッジ](https://knowledge.sakura.ad.jp/16862/)

[Releases · docker/compose](https://github.com/docker/compose/releases)

```bash
curl -L https://github.com/docker/compose/releases/download/1.23.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
```

[docker\-compose でよく使いそうなコマンドおぼえがき \- kasei\_sanのブログ](https://blog.kasei-san.com/entry/2018/03/12/060801)
[docker\-composeでマウント先を間違えると大変なことになる。 \- Qiita](https://qiita.com/akira345/items/67e87bb45168520403d6)
[docker\-composeでホストとコンテナのIPアドレスを同じにする](https://hakengineer.xyz/2018/07/29/post-1475/)
[docker\-composeで起動したコンテナにbashで入ったりコマンドを渡す \- Qiita](https://qiita.com/setouchi/items/ebfeefb7d5b129002177)
```bash
docker-compose exec app bash
```


[CentOS 7 firewalld よく使うコマンド \- Qiita](https://qiita.com/kenjjiijjii/items/1057af2dddc34022b09e)

```bash
firewall-cmd --add-port=80/tcp --zone=public --permanent
firewall-cmd --add-port=443/tcp --zone=public --permanent
firewall-cmd --reload
firewall-cmd --list-all
```

[コマンドライン補完 — Docker\-docs\-ja 17\.06\.Beta ドキュメント](http://docs.docker.jp/compose/completion.html)

```bash
curl -L https://raw.githubusercontent.com/docker/compose/$(docker-compose version --short)/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose
```

### OS起動時に起動するには
[docker\-composeでOS起動時にコンテナを自動起動する方法 \- Qiita](https://qiita.com/eijenson/items/25b35916afa38cdf9cea)
[Docker Compose restart の挙動 \- 技術備忘記](http://junchang1031.hatenablog.com/entry/2016/05/18/000605)
[Systemdとdocker\-composeでカジュアルにdockerを運用する \- Qiita](https://qiita.com/kanga/items/5f956bc47068c9774522)
`restart: always`でも可能、systemdを使うことで細かい制御もできる

[Docker · sosedoff/pgweb Wiki](https://github.com/sosedoff/pgweb/wiki/Docker)

[docker\-composeでPostgreSQL \+ Web GUIを立ち上げ \| 酒と涙とRubyとRailsと](https://morizyun.github.io/docker/docker-compose-postgresql-pgweb.html)
[Docker で使えるデータベースの Web GUI まとめ \- Qiita](https://qiita.com/yamitzky/items/74fdf31570e2e9a6f287)
[serverあれこれ: Dockerでpgweb、PostgreSQL 10\.4がインストールされたコンテナ\(Alpine 3\.7\)を構築する](http://serverarekore.blogspot.com/2018/07/dockerpgwebpostgresql-104alpine-37.html)

[Go PostgreSQLにつないでみる \- Qiita](https://qiita.com/hiro9/items/e6e41ec822a7077c3568)
[『Docker』docker\-composeで開発用PostgreSQLを手に入れる（ver\.01） \- Qiita](https://qiita.com/tsnb/items/c70cd17453281356a27f)

[PostgreSQLのサンプルデータを簡単につくる \- 理系学生日記](https://kiririmode.hatenablog.jp/entry/20170112/1484146800)
[PostgreSQL Sample Database](http://www.postgresqltutorial.com/postgresql-sample-database/)