概要(Dockerを採用する経緯)
開発用のPCを汚すのがいやで、データベースをVirtual Boxを使用して仮想WindowsマシンにPosgreSQLをインストールして構築していたのですが、Edgeの検証用のWindowsを流用していたのでライセンス切れになってしまいました。
横着したら駄目ですね。
そんなこともあり、折角なのでDockerを使用して再構築することにしました。
PostgreSQLが設定済みのDocker Imageの入手先
VMとかだとソフトウェアをインストールしないといけないのですが、すぐにでも使えちゃうよ版のPostgreSQLのDocker Imageが公式で配布されています。
postgres Docker Official Images を参照して下さい。
※今回行うdocker-compose絡みのこともOfficialに記載があるので、参照してみて下さい。
で、今回はですが、コマンドではなくdocker-composeを実行して、postgresのDocker コンテナを作成することにします。
docker-composeで起動する
公式にはrun
コマンドで起動する方法が書いてありますが、ポートフォワードしてホストから繋げたかったりしたので、色々設定をまとめて書けるdocker-composeにしました。
docker-composeの設定
肝心の内容ですが、以下のように設定しました。
docker-compose.yml
# Use postgres/example user/password credentials
version: '3.1'
services:
db:
image: postgres
restart: always
environment:
POSTGRES_PASSWORD: example
ports:
- "15432:5432"
docker-composeの起動コマンド
docker-composeコマンドで上記のymlを指定してコンテナを起動しましょう。
docker-compose -f docker-compose.yml up
Docker内で起動したPostgreSQLの接続情報
上記のdocker-composeコマンドでコンテナを起動したら以下の接続情報で繋がるようになります。
Key | Value |
---|---|
ユーザ | postgres |
パスワード | example |
DB名 | postgres |
ホスト | localhost |
ポート番号 | 15432 |
Adminerを使用する場合のdocker-composeの設定
ちなみにAdminerを使って接続できるようにするには以下のように設定すればできます。
その場合は、WebからGUIで操作できるのでポートフォワードとかいらないかもですね。
phpMyAdminとか使ってる人には良いかもです。まぁ好みですが。。。
docker-compose_adminer.yml
# Use postgres/example user/password credentials
version: '3.1'
services:
db:
image: postgres
restart: always
environment:
POSTGRES_PASSWORD: example
ports:
- "15432:5432"
adminer:
image: adminer
restart: always
ports:
- 8080:8080
Adminerの接続先URL
上記のdocker-composeコマンドでコンテナを起動したら、http://localhost:8080 でadminerに接続できます。
接続情報は上に書いたのと同じです。
あ、ただコンテナ内からのアクセスになるのでホスト名がlocalhost
ではなく、db
で接続するようになりますね。
Key | Value |
---|---|
データベース種別 | PostgreSQL |
サーバ | db |
ユーザ名 | postgres |
パスワード | example |
データベース | postgres |
コメント