Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
2
Help us understand the problem. What is going on with this article?
@Yukimura127

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

はじめに

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から接続するところを書きたいと思います。

2
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
2
Help us understand the problem. What is going on with this article?