0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

DockerでPostgreSQLコンテナを作成

Last updated at Posted at 2021-06-07
docker-compose.yaml
version: "3"
services:
  sample-postgres:
    image: postgres:9.6

    # Queryログを出力する場合
    command: postgres -c log_destination=stderr -c log_statement=all -c log_connections=on -c log_disconnections=on
    logging:
      options:
        max-size: "10k"
        max-file: "5"
    # Queryログを出力する場合

    container_name: sample-postgres
    env_file:
      - .env
    ports:
      - "5432:5432"
    volumes:
      - database:/var/lib/postgresql/data
      - ./initdb:/docker-entrypoint-initdb.d

volumes:
  database:
    driver: local
.env
POSTGRES_USER=postgres
POSTGRES_PASSWORD=password
POSTGRES_DB=sample_db

Up

$ docker-compose up -d --build

Sign in to db

$ sudo docker exec -it sample-postgres /bin/bash -c \
    'psql -U postgres -W -d sample_db'
Password for user postgres:
psql (9.6.22)
Type "help" for help.

外部から

$ psql -U postgres -h example.com -W -d sample_db

pg_hba.conf

$ docker exec -it sample-postgres /bin/bash -c 'ls -l /var/lib/postgresql/data/pg_hba.conf'
-rw------- 1 postgres postgres 4490 Jun  7 14:15 /var/lib/postgresql/data/pg_hba.conf
$ docker exec -it sample-postgres /bin/bash -c 'cat /var/lib/postgresql/data/pg_hba.conf'

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
# local   replication     postgres                                trust
# host    replication     postgres        127.0.0.1/32            trust
# host    replication     postgres        ::1/128                 trust

host all all all md5

Databases

sample_db=# \l
                                 List of databases
   Name    |  Owner   | Encoding |  Collate   |   Ctype    |   Access privileges
-----------+----------+----------+------------+------------+-----------------------
 postgres  | postgres | UTF8     | en_US.utf8 | en_US.utf8 |
 sample_db | postgres | UTF8     | en_US.utf8 | en_US.utf8 |
 template0 | postgres | UTF8     | en_US.utf8 | en_US.utf8 | =c/postgres          +
           |          |          |            |            | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_US.utf8 | en_US.utf8 | =c/postgres          +
           |          |          |            |            | postgres=CTc/postgres
(4 rows)

Schemas

sample_db=# \dn
  List of schemas
  Name  |  Owner
--------+----------
 public | postgres
(1 row)

Roles

sample_db=# \du
                                   List of roles
 Role name |                         Attributes                         | Member of
-----------+------------------------------------------------------------+-----------
 postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS | {}

Search path

sample_db=# show search_path;
   search_path
-----------------
 "$user", public
(1 row)

Create table

create table users
(
    id SERIAL NOT NULL,
    name VARCHAR(255) NOT NULL,
    created_at TIMESTAMP,
    updated_at TIMESTAMP,
    PRIMARY KEY (id)
);

sample_db=# \dt
         List of relations
 Schema | Name  | Type  |  Owner
--------+-------+-------+----------
 public | users | table | postgres
(1 row)

sample_db=# \d users;
                                     Table "public.users"
   Column   |            Type             |                     Modifiers
------------+-----------------------------+----------------------------------------------------
 id         | integer                     | not null default nextval('users_id_seq'::regclass)
 name       | character varying(255)      | not null
 created_at | timestamp without time zone |
 updated_at | timestamp without time zone |
Indexes:
    "users_pkey" PRIMARY KEY, btree (id)
0
1
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?