Dockerを使って3分未満でPostgresを起動して実行する🚀



"docker compose "を使ってPostgresを実行する

Postgresというローカルディレクトリを作成する
$ mkdir postgres
$ cd ./postgres

ディレクトリ内の"pgdata "ディレクトリを作成する
$ cd ./postgres
$ mkdir ./pgdata
👉 Dockerコンテナが「stateless」であるとき、コンテナがシャットダウンされるとき、データを保つために「pgdata」ディレクトリを作成しなければなりません.

"postgres "ディレクトリに"Docker compose . yml "というファイルを作成する
$ touch ./docker-compose.yml

📄 Dockerの作成YMLファイル
version: "3.8"
services:
  db:
    image: "postgres:13"
    ports:
      - "5432:5432"
    volumes:
      - ./pgdata:/var/lib/postgresql/data
    environment:
      - POSTGRES_USER=dbuser
      - POSTGRES_PASSWORD=admin2021
      - POSTGRES_DB=todoapp
  • このファイルはPostgresバージョン13イメージから"DB "と呼ばれるホストを作成します.ホストDBのTCPポート5432(postgres)はTCPポート5432として外部に公開される.
  • ローカルディレクトリ“./pgdata”は“DB”ホスト
  • の内部で“/var/lib/postprogsql/data”としてマップされます
  • ユーザー名、パスワードとデータベース名は、環境変数
  • として露出されます

    コンテナを分離モードで実行する
    $ docker-compose up -d
    

    実行中のDockerコンテナのリスト
    $ docker-compose ps
    

    コンテナ内部でコマンドを実行する
    $ docker-compose run db bash
    

    ホスト内のPostgresを接続する
    $ psql  --host=db --username=dbuser --dbname=todoapp
    

    外部から「postgres」に接続します
    $ psql --host=localhost --username=dbuser --dbname=todoapp
    

    ストップコンテナ
    $ docker-compose down
    
    ETボイル🎉 !