PostgreSQL, psql, Docker, Zabbix

Kill everything:
docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q)
Serve Zabbix 4.0 on port 40:
docker run --name postgres-server -t -e POSTGRES_USER="zabbix" -e POSTGRES_PASSWORD="zabbix" -e POSTGRES_DB="zabbix_pwd" -d postgres:10-alpine && docker run --name zabbix-server-pgsql -t -e DB_SERVER_HOST="postgres-server" -e POSTGRES_USER="zabbix" -e POSTGRES_PASSWORD="zabbix" -e POSTGRES_DB="zabbix_pwd" --link postgres-server:postgres -p 20051:10051 -d zabbix/zabbix-server-pgsql:alpine-4.0-latest && docker run --name zabbix-web-nginx-pgsql -t -e DB_SERVER_HOST="postgres-server" -e POSTGRES_USER="zabbix" -e POSTGRES_PASSWORD="zabbix" -e POSTGRES_DB="zabbix_pwd" --link postgres-server:postgres --link zabbix-server-pgsql:zabbix-server -p 40:80 -d zabbix/zabbix-web-nginx-pgsql:alpine-4.0-latest
Run PSQL 10 server with customization:
docker run --name postgres-server -t -e POSTGRES_USER="zabbix" -e POSTGRES_PASSWORD="zabbix" -e POSTGRES_DB="zabbix_pwd" -d postgres:10-alpine -c 'max_connections=1000' -c 'shared_buffers=512MB' -c 'effective_cache_size=1536MB' -c 'maintenance_work_mem=128MB' -c 'checkpoint_completion_target=0.9' -c 'wal_buffers=16MB' -c 'default_statistics_target=100' -c 'random_page_cost=1.1' -c 'effective_io_concurrency=200' -c 'work_mem=131kB' -c 'min_wal_size=1GB' -c 'max_wal_size=2GB'
See if container is running:
docker stats
Launch bash in docker container:
docker exec -it postgres-server bash
Lauch 'psql' utility with user 'zabbix' and enter 'postgres' database:
docker exec -it postgres-server psql -Uzabbix postgres
Observe some variables:
show max_connections;
show shared_buffers;
show effective_cache_size;
show maintenance_work_mem;
show checkpoint_completion_target;
show wal_buffers;
show default_statistics_target;
show random_page_cost;
show effective_io_concurrency;
show work_mem;
show min_wal_size;
show max_wal_size;
Quite database client:
\q
Link backend and frontend:
docker run --name zabbix-server-pgsql -t \
      -e DB_SERVER_HOST="postgres-server" \
      -e POSTGRES_USER="zabbix" \
      -e POSTGRES_PASSWORD="zabbix" \
      -e POSTGRES_DB="zabbix_pwd" \
      --link postgres-server:postgres \
      -p 20051:10051 \
      -d zabbix/zabbix-server-pgsql:alpine-4.2-latest

# start GUI   
docker run --name zabbix-web-nginx-pgsql -t \
      -e DB_SERVER_HOST="postgres-server" \
      -e POSTGRES_USER="zabbix" \
      -e POSTGRES_PASSWORD="zabbix" \
      -e POSTGRES_DB="zabbix_pwd" \
      --link postgres-server:postgres \
      --link zabbix-server-pgsql:zabbix-server \
      -p 801:80 \
      -d zabbix/zabbix-web-nginx-pgsql:alpine-4.2-latest
Related:
https://pgtune.leopard.in.ua/
https://docs.docker.com/samples/library/postgres/

No comments: