LoginSignup
11
9

More than 3 years have passed since last update.

Docker for WindowsでPostgres+pgAdminのコンテナをたてる

Last updated at Posted at 2021-03-07

はじめに

RustのdieselでPostgresに接続しようと思い、DockerでPostgresとpgAdmin4をたてました。
情報を探しても部分的にしかなかったので、備忘録的に残しておきます。

環境

Docker for WindowsでDocker Composeを使います。
Postgresは13.2、pgAdminは4.4.2を使います。

Volumeの作成

Windowsの場合、Postgresのコンテナを作る際 Volumeを作らずにマウントするとPermission Errorやらエラーが出るようです。
Docker for Windowsでpostgresのデータマウントができない人へ
Docker for Windows で postgres コンテナの Volume マウントを安全にする

ので、Volumeを作ります。

Postgres用
$ docker volume create postgres_volume

pgAdmin4用
$ docker volume create pgadmin4_volume

Containerの作成

以下のようにdocker-compose.yamlを用意します。

docker-compose.yaml
version: '3.7'
services:
    postgres:
        image: postgres:13.2-alpine
        container_name: postgres
        ports:
            - 5432:5432
        volumes:
            - postgres_volume:/var/lib/postgresql/data
        environment:
            POSTGRES_USER: root
            POSTGRES_PASSWORD: root
            POSTGRES_INITDB_ARGS: "--encoding=UTF-8"
        hostname: postgres
        restart: always
        user: root

    pgadmin4:
        image: dpage/pgadmin4:5.0
        container_name: pgadmin4
        ports:
            - 8000:80
        volumes:
            - pgadmin4_volume:/var/lib/pgadmin
        environment:
            PGADMIN_DEFAULT_EMAIL: root
            PGADMIN_DEFAULT_PASSWORD: root
        hostname: pgadmin4
        depends_on:
          - postgres
        restart: always

volumes:
  postgres_volume:
    external: true
  pgadmin4_volume:
    external: true

立ち上げます。

$ docker-compose up

pgAdminへのアクセスと設定

localhost:8000にアクセスできればOKです(root/root)。
pgAdmin.png

サーバー追加で、docker-compose.yamlに記載した内容を設定すればOKです。
参考画像
add_server.png

まとめ

Docker for WindowsでPostgres+pgAdminのコンテナを立ち上げる方法を紹介しました。
次回はこのPostgresにRustのdieselから接続するところを書きたいと思います。

11
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
9