Common Commands
Docker Swarm — Cluster
Section titled “Docker Swarm — Cluster”# View all nodes in the clusterdocker node ls
# View all services across all stacksdocker service ls
# View all stacksdocker stack lsDocker Swarm — Services
Section titled “Docker Swarm — Services”# List services in a specific stackdocker stack services dev # DEV stackdocker stack services uat # UAT stackdocker stack services shared # Shared stack
# View tasks (containers) for a servicedocker service ps dev_api --no-trunc
# View logs for a servicedocker service logs dev_api --tail 100 -f
# View logs with timestampsdocker service logs dev_api --tail 200 -f -t
# Scale a servicedocker service scale dev_api=2
# Force restart a service (redeploy)docker service update --force dev_api
# Update a service imagedocker service update --image harbor.ayinza.dev/library/sseris-api:latest dev_apiDocker — Containers
Section titled “Docker — Containers”# List running containers on this nodedocker ps
# List all containers (including stopped)docker ps -a
# Exec into a running containerdocker exec -it <container_id> sh
# View container logsdocker logs <container_id> --tail 100 -f
# Inspect a containerdocker inspect <container_id>Docker — Images
Section titled “Docker — Images”# List images on this nodedocker images
# Pull an image from Harbordocker pull harbor.ayinza.dev/library/sseris-api:latest
# Remove unused images (reclaim disk)docker image prune -a
# Login to Harbordocker login harbor.ayinza.devDocker — Volumes & Storage
Section titled “Docker — Volumes & Storage”# List all volumesdocker volume ls
# Inspect a volume (see mount point)docker volume inspect dev_postgresql_data
# Check disk usage by Dockerdocker system df
# Full Docker cleanup (careful!)docker system pruneDocker — Configs
Section titled “Docker — Configs”# List all configsdocker config ls
# Inspect a config (see contents)docker config inspect <config_name> --pretty
# Create a new configdocker config create my_config ./my-file.conf
# Remove a config (must not be in use)docker config rm <config_name>Docker — Stack Deployment
Section titled “Docker — Stack Deployment”# Deploy/update a stack from a YAML filedocker stack deploy -c <file>.yml <stack_name>
# Remove a stack entirely (DESTRUCTIVE)docker stack rm <stack_name>
# View stack tasks with statusdocker stack ps devdocker stack ps uatdocker stack ps sharedDatabase Commands
Section titled “Database Commands”# Connect to DEV PostgreSQLdocker exec -it $(docker ps -q -f name=dev_postgresql) psql -U postgres
# Dump DEV databasedocker exec $(docker ps -q -f name=dev_postgresql) \ pg_dumpall -U postgres | gzip > sseris-dev-$(date +%Y%m%d).sql.gz
# Restore DEV databasegunzip -c sseris-dev-20260208.sql.gz | \ docker exec -i $(docker ps -q -f name=dev_postgresql) psql -U postgres# Connect to UAT PostgreSQLdocker exec -it $(docker ps -q -f name=uat_postgresql) psql -U postgres
# Dump UAT databasedocker exec $(docker ps -q -f name=uat_postgresql) \ pg_dumpall -U postgres | gzip > sseris-uat-$(date +%Y%m%d).sql.gz
# Restore UAT databasegunzip -c sseris-uat-20260208.sql.gz | \ docker exec -i $(docker ps -q -f name=uat_postgresql) psql -U postgresUseful SQL Queries
Section titled “Useful SQL Queries”-- List all databases\l
-- Check database sizesSELECT pg_database.datname, pg_size_pretty(pg_database_size(pg_database.datname))FROM pg_database ORDER BY pg_database_size(pg_database.datname) DESC;
-- Check active connectionsSELECT count(*) FROM pg_stat_activity;
-- Check table sizes in current databaseSELECT schemaname, tablename, pg_size_pretty(pg_total_relation_size(schemaname || '.' || tablename))FROM pg_tables ORDER BY pg_total_relation_size(schemaname || '.' || tablename) DESC LIMIT 20;
-- Kill a stuck connectionSELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = 'mydb' AND pid <> pg_backend_pid();Server Management
Section titled “Server Management”# Check disk usagedf -h
# Check memory usagefree -h
# Check running processes (top CPU)top -o %CPU
# Check who is logged inwho
# Check system uptimeuptime
# Check open portsss -tlnpNginx (Docker Configs)
Section titled “Nginx (Docker Configs)”# View current nginx configsdocker config ls | grep nginx
# Test nginx config inside containerdocker exec $(docker ps -q -f name=dev_nginx) nginx -t
# Reload nginx (after config update)docker service update --force dev_nginxWireGuard VPN
Section titled “WireGuard VPN”# Check VPN status (on either server)wg show
# Restart WireGuard (if tunnel goes down)systemctl restart wg-quick@wg0
# Check if peer is reachableping 10.10.0.1 # Azure (from Contabo)ping 10.10.0.2 # Contabo (from Azure)SSL Certificates
Section titled “SSL Certificates”# Check certificate expiry for a domainecho | openssl s_client -connect ayinza.dev:443 2>/dev/null | openssl x509 -noout -dates
# View certificate detailsecho | openssl s_client -connect auth.ayinza.dev:443 2>/dev/null | openssl x509 -noout -text
# Let's Encrypt renewal (if using certbot)certbot renew --dry-runGitHub Actions Runner
Section titled “GitHub Actions Runner”# Check runner status (on Contabo)systemctl status actions.runner.*
# View runner logsjournalctl -u actions.runner.* -f --no-pager
# Restart the runnersystemctl restart actions.runner.*Harbor Registry
Section titled “Harbor Registry”# Check Harbor disk usagedu -sh /data/registrydu -sh /data/
# Login to Harbor CLIdocker login harbor.ayinza.dev
# Push an imagedocker tag myimage:latest harbor.ayinza.dev/library/myimage:latestdocker push harbor.ayinza.dev/library/myimage:latest