9cubed
ブログ | Tailwind | Vite | Python | MariaDB | Node.js | Linux | PowerShell | Docker | Git | その他 | 将棋ウォーズ | 歌の練習
< 前の記事

GitHub にプッシュしたらイメージ作成

Linux Docker

[Linux]Docker で PostgreSQL のコンテナの使用

公開日:2026-01-09
更新日:2026-01-09

1. 概要

Docker で PostgreSQL のコンテナの使用します。

2. PostgreSQL のコンテナの起動

コマンド
docker run -d \
  --name postgres-test \
  --network my-app-network \
  -e POSTGRES_PASSWORD=password \
  -p 5432:5432 \
  postgres:18.1
--name で、コンテナ名を指定します。

--network で、ネットワークを指定します。PostgreSQL 単独で使う場合は省略可能。
コマンド
docker network ls                     # ネットワーク一覧
docker network create my-app-network  # ネットワークの作成

-e POSTGRES_PASSWORD で、ユーザ postgres のパスワードを設定します。

-p はポートフォワーディングです。

postgres:18.1 は「イメージ名:タグ」です。
PostgreSQL の他のバージョンは、Docker 公式イメージで確認できます。

3. psql で PostgreSQL に接続する方法

PostgreSQL のコンテナに接続して bash で操作できるようにする。
コマンド
docker exec -it postgres-test bash

バージョンの確認
コマンド
psql -V

# 結果:psql (PostgreSQL) 18.1 (Debian 18.1-1.pgdg13+2)

PostgreSQL に接続
コマンド
psql -U {ユーザ名}  
psql -U postgres     # postgres は MySQL の root

4. 基本的なコマンドと SQL

データベースの作成
コマンド
CREATE DATABASE testdb;

データベースの一覧の表示
コマンド
\l  (小文字のエル)
実行結果
                                                    List of databases
   Name    |  Owner   | Encoding | Locale Provider |  Collate   |   Ctype    | Locale | ICU Rules |   Access privileges
-----------+----------+----------+-----------------+------------+------------+--------+-----------+-----------------------
 postgres  | postgres | UTF8     | libc            | en_US.utf8 | en_US.utf8 |        |           |
 template0 | postgres | UTF8     | libc            | en_US.utf8 | en_US.utf8 |        |           | =c/postgres          +
           |          |          |                 |            |            |        |           | postgres=CTc/postgres
 template1 | postgres | UTF8     | libc            | en_US.utf8 | en_US.utf8 |        |           | =c/postgres          +
           |          |          |                 |            |            |        |           | postgres=CTc/postgres
 testdb    | postgres | UTF8     | libc            | en_US.utf8 | en_US.utf8 |        |           |
(4 rows)

# データベースの切り替え(MySQL の use)
\c testdb
##/src##

# テーブル作成
コマンド
CREATE TABLE users (
    id INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
    name TEXT NOT NULL,
    email TEXT UNIQUE NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
GENERATED ALWAYS AS IDENTITY:常に採番する。任意指定不可。
GENERATED BY DEFAULT AS IDENTITY:任意指定可能。未指定の場合は採番する。

テーブル一覧の表示
コマンド
\dt
実行結果
          List of tables
 Schema | Name  | Type  |  Owner
--------+-------+-------+----------
 public | users | table | postgres
(1 row)

コマンド
# トランザクション開始
BEGIN; # または START TRANSACTION;

# 追加
INSERT INTO users (name, email) VALUES ('Taro', 'taro@example.com'), ('Jori', 'jiro@example.com');

# 検索
SELECT * FROM users;

# 更新
UPDATE users SET name = 'Test' where id = 1;

# ロールバック
ROLLBACK;

# コミット
COMMIT;
< 前の記事

GitHub にプッシュしたらイメージ作成

YouTube X

新着一覧

  • テーブル結合(CROSS JOIN、INNER JOIN、LEFT JOIN)MariaDB
  • 楽観ロック・悲観ロックMariaDB
  • カレントリードMariaDB
  • インデックスMariaDB
  • 論理削除(ソフトデリート)MariaDB
  • awk(オーク)の使い方についてLinux
  • NOT NULL 制約と NULL を許容した時の動作MariaDB
  • 外部キー制約MariaDB
  • MySQL と MariaDB の関係MariaDB
  • Docker で PostgreSQL のコンテナの使用Linux

アーカイブ

  • 2026/01
  • 2025/12
  • 2025/11
  • 2025/10
  • 2025/09
  • 2025/08
  • /00

以前のカテゴリー一覧

  • CakePHP3
  • CentOS7
  • HTML・CSS・JavaScript
  • Haskell
  • JavaScript
  • Kotlin
  • Laravel5
  • PHP
  • Python
  • Ruby
  • RubyOnRails5
  • TypeScript
  • Vue.js
  • Webサーバ講座
  • Webプログラミング講座
  • jQuery
  • linux
  • パソコン講座
  • ブログ
  • プログラミング講座
  • メモ帳作成講座
  • 数学

Copyright © 9cubed. All Rights Reserved.

プライバシーポリシー 利用規約
▲