Skip to content

mentalm/postgres

Repository files navigation

PostgreSQL

Build Status Docker Automated buil

Quickstart

Start PostgreSQL creating database user:

sudo docker run --name pg.master -itd --restart always \
    --env 'POSTGRES_PASSWORD=pass' \
    --env 'POSTGRES_DB_NAME=mydb' \
    --env 'POSTGRES_DB_USER=me' \
    --env 'POSTGRES_DB_PASS=db-pass' \
    --env 'POSTGRES_DB_EXTENSION=postgis,hstore,uuid-ossp' \
    mongkok/postgres:10

Creating replication user

sudo docker run --name pg.master -itd --restart always \
    --env 'REPLICATION_USER=replication-user' \
    --env 'REPLICATION_PASS=replication-pass' \
    mongkok/postgres:10

Setting up a replication cluster

docker run --name pg.slave -itd --restart always \
    --network postgres \
    --env 'REPLICATION_MODE=slave' \
    --env 'REPLICATION_HOST=pg.master' \
    --env 'REPLICATION_PORT=5432' \
    --env 'REPLICATION_USER=replication-user' \
    --env 'REPLICATION_PASS=replication-pass' \
    mongkok/postgres:10

Creating a snapshot

docker run --name pg.snapshot -itd --restart always \
    --network postgres \
    --env 'REPLICATION_MODE=snapshot' \
    --env 'REPLICATION_HOST=pg.master' \
    --env 'REPLICATION_PORT=5432' \
    --env 'REPLICATION_USER=replication-user' \
    --env 'REPLICATION_PASS=replication-pass' \
    mongkok/postgres:10

Creating a backup

docker run --name pg.backup -it --rm \
    --network postgres \
    --env 'REPLICATION_MODE=backup' \
    --env 'REPLICATION_HOST=pg.master' \
    --env 'REPLICATION_PORT=5432' \
    --env 'REPLICATION_USER=replication-user' \
    --env 'REPLICATION_PASS=replication-pass' \
    --volume /path/to/postgresql.$(date +%Y%m%d%H%M%S):/var/lib/postgresql/replica \
    mongkok/postgres:10

Inspiration

About

🐘 🐳 Docker image for Postgres

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published