【9/29まで】無料で3,500円分のビットコインをもらう »

DockerでPostgreSQLの実行環境(コンテナ)を作成する方法

Docker PostgreSQL

こんにちは、はやたす(@hayatasuuu )です。

この記事ではDockerでPostgreSQLの実行環境を作成する方法を紹介します。

DockerでPostgreSQLの環境を準備できると、自分のPCを汚さずにSQLを練習できます。

使わなくなったらコンテナを削除するだけ。
PostgreSQLのアンインストールすら考える必要ないです。

さっそくDockerコンテナを使って、
PostgreSQLの実行環境を作成していきましょう。

目次

DockerでPostgreSQLの実行環境(コンテナ)を作成する方法

DockerでPostgreSQLの実行環境を準備するには、以下の3ステップが必要になります。

  • STEP1 : Dockerfileを準備する
  • STEP2 : docker-compose.ymlを作成してコンテナをビルドする
  • STEP3 : コンテナ上のPostgreSQLにログインする

また、この手順を進めるにあたり、今回はsqlpracticeというフォルダを作成しておきましょう。

$ mkdir sqlpractice

このフォルダを開いておきます。

さらにdataという名前のフォルダをsqlpractice配下に作成します。つまり、以下の構成になれば大丈夫です。

$ tree .
# .
# ├── Dockerfile
# ├── data
# └── docker-compose.yml
# 
# 1 directory, 2 files

Dockerfileとdocker-compose.ymlは、これから一緒に作成していきましょう。

STEP1 : Dockerfileを作成する

まずはDockerfileの作成からです。

Dockerfileという名前をつけたファイルに、以下の内容をコピペしましょう。

FROM postgres:13-alpine
ENV LANG ja_JP.utf8

FROMではベースになるイメージを選択しています。

今回は「Docker HubにアップされているPostgraSQL 13のオフィシャルイメージを使っている」ということです。

もしバージョンを変えたかったら、Docker Hubから好きなイメージを選択してみてください。

参考 : Postgres – Official Image | Docker Hub

STEP2 : docker-compose.ymlを作成してコンテナをビルドする

次にdocker-compose.ymlを作成します。

docker-compose.ymlという名前をつけたファイルに、以下の内容をコピペしましょう。

version: '3'
services:
  db:
    build: .
    container_name: mypg
    volumes:
      - ./data:/var/lib/postgresql/data
    ports:
      - 5433:5432
    environment:
      POSTGRES_USER: admin
      POSTGRES_PASSWORD: admin
      POSTGRES_DB: test_db

これで、Dockerコンテナを作成するとき、PostgreSQLの初期設定も行われた状態になっています。

自分のPCにPostgreSQLをインストールするとき、画面をポチポチやるんですけど、それをコード化して自動でセットアップできるってわけです。

それでは、docker-compose.ymlを書いたら、ターミナルで以下のコマンドを実行しましょう。実行するときは、今回のプロジェクトファイルsqlpracticeにいることを確認してください。

$ docker-compose up -d 

これでDockerfileとdocker-compose.ymlを元に、Dockerコンテナを作成することができました。

ちなみに以下のコマンドを入力すると、コンテナが起動されていることが分かります。

$ docker-compose ps

STEP3 : コンテナ上のPostgreSQLにログインする

それでは最後に、作成したDockerコンテナ上で起動してるPostgreSQLにログインしていきましょう。

そのためには、以下のコマンドを実行します。

$ docker container exec -it mypg bash

これで、いま作成したmypqというコンテナを操作できるようになります。

bashが起動しているはずなので、以下のpsqlコマンドを実行して作成したデータベースtest_dbに入っていきましょう。

bash-5.1# psql -p 5432 -U admin -d test_db

あとはいつもどおりにSQLを使えます。試しにデータベース一覧を確認してみます。

test_db=# \l

そうすると、以下のようにデータベース一覧が表示されるはずです。

Docker PostgreSQL 作成手順

これでPostgreSQLの動作確認まで完了しました。

あとはSQLを練習するもよし、exitで適宜抜けていただくもよしです。

最後にDockerコンテナを終了するためには、以下のコマンドを実行します。

$ docker-compose stop

もしDockerコンテナを削除して、後片付けしたいなら以下のコマンドです。

$ docker-compose down

お疲れさまでした!

SNSに投稿して読み返す
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

フリーランス(Python)/クリプト投資家/YouTuber3.23万人&Udemy講師(案件獲得者/転職者複数)/ 好きなブロックチェーンはAvalanche(アバランチ)です

目次