【Docker】PostgreSQLをコンテナイメージで起動(MacOS)

Dockerでデータベース「PostgreSQL」のイメージの起動までをまとめました。

イメージの取得から起動までも簡単にできるので毎回インストールするよりも簡単に構築をすることができますので試してみてください。

DockerコンテナでPostgreSQLを起動する手順

公式のDockerイメージとコンテナの起動手順の最新のコマンド等は以下のページから確認できます。

https://hub.docker.com/_/postgres/

また、2020年3月時点での「PostgreSQL」のイメージとファイルリンクは以下となっています。

  • 12.2, 12, latest
  • 12.2-alpine, 12-alpine, alpine
  • 11.7, 11
  • 11.7-alpine, 11-alpine
  • 10.12, 10
  • 10.12-alpine, 10-alpine
  • 9.6.17, 9.6, 9
  • 9.6.17-alpine, 9.6-alpine, 9-alpine
  • 9.5.21, 9.5
  • 9.5.21-alpine, 9.5-alpine

Dockerコンテナで「postgres」インスタンスを開始

以下のコマンドで「PostgresSQL」のコンテナを起動します。
今回は最新のバージョンでインストールします。

最新のイメージで起動

~ $ docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres

バージョン指定でイメージを起動する場合

バージョンを指定して「PostgreSQL」をインストールしたい場合は以下のコマンドを実行します。
※以下はバージョン11.7で起動した例となります。

~ $ docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres:11.7

PostgreSQLの起動確認

上記コマンドで、正常に「PostgreSQL」が起動したかを確認します。

PostgreSQLのイメージがダウンロードされていることを以下コマンドで確認します。

~ $ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
postgres            latest              73119b8892f9        11 days ago         314MB
django              latest              9108c69607a8        3 weeks ago         972MB
splunk/splunk       latest              d92ffcc2e7e5        4 weeks ago         1.74GB
python              3                   efdecc2e377a        5 weeks ago         933MB
centos              centos7             5e35e350aded        4 months ago        203MB
~ $  

「docker ps」コマンドで「PostgreSQL」のコンテナが起動していることを確認します。

~ $ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
cd5c8fdbe70a        postgres            "docker-entrypoint.s…"   38 minutes ago      Up 37 minutes       5432/tcp            some-postgres
~ $ 

Docker Composeの設定ファイルの作成

Docker Composeの設定ファイルを作成し、データベースを起動します。

PostgreSQLデータベースを起動させるための「stack.yml」を作成します。
今回はテストとして、Macのデスクトップ上にファイルを作成します。

※stack.yml

# Use postgres/example user/password credentials
version: '3.1'

services:

  db:
    image: postgres
    restart: always
    environment:
      POSTGRES_PASSWORD: example

  adminer:
    image: adminer
    restart: always
    ports:
      - 8080:8080

上記で設定した内容は以下となります。

  • アクセス先URL: localhost:8080
  • サーバ: db
  • ユーザー名: postgres
  • パスワード: example

ファイル名を指定して「PostgreSQL」を実行

stack.ymlを作成後は、作成したフォルダで以下のコマンドを実行します。

Desktop $ docker-compose -f stack.yml up
Starting desktop_db_1      ... done
Starting desktop_adminer_1 ... done

終了する場合は「control」+「c」キーで終了します。

バックグラウンドでコンテナを実行

バックグラウンドで実行する場合は以下のコマンドを実行します。

Desktop $ docker-compose -f stack.yml up -d
Starting desktop_db_1      ... done
Starting desktop_adminer_1 ... done

終了する場合は以下のコマンドでデータベースを停止します。

Desktop $ docker stop desktop_adminer_1
desktop_adminer_1
Desktop $ docker stop desktop_db_1
desktop_db_1

Dockerコンテナで起動した「PostgreSQL」へアクセス

上記で「PostgreSQL」が起動したら「http://localhost:8080」へアクセスします。

正常にアクセスができれば以下のようなページにアクセスできます。

それぞれ以下の情報を入力し、ログインを実施します。

  • データベースの種類: PostgreSQL
  • サーバ: db
  • ユーザー名: postgres
  • パスワード: example

※永続的にログインする場合はチェックボックスをクリックしてログインを実施します。

正常に接続ができると以下のページが表示されます。

Dockerコンテナ上で「PostgreSQL」の起動と接続までは以上となります。




エンジニアのオンライン学習

ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。

おすすめオンライン教材
自宅で学習ができるオンラインスクール

ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

ABOUT US
げんき☆ひろき
インターネット関連のSEをやっています。 ネットワーク、サーバー、ストレージ、仮想基盤まで幅広く手を出しており、MVNOの構築経験もあります。 現在は、Pythonを使ったプログラミングの開発をしネットワークの自動化ツールを作成しています! Pythonの入門書も作成しているので、ぜひ参考にしてください!