Skip to content

Common Commands

$docker service ls$docker stack ps dev50 services running
Terminal window
# View all nodes in the cluster
docker node ls
# View all services across all stacks
docker service ls
# View all stacks
docker stack ls
Terminal window
# List services in a specific stack
docker stack services dev # DEV stack
docker stack services uat # UAT stack
docker stack services shared # Shared stack
# View tasks (containers) for a service
docker service ps dev_api --no-trunc
# View logs for a service
docker service logs dev_api --tail 100 -f
# View logs with timestamps
docker service logs dev_api --tail 200 -f -t
# Scale a service
docker service scale dev_api=2
# Force restart a service (redeploy)
docker service update --force dev_api
# Update a service image
docker service update --image harbor.ayinza.dev/library/sseris-api:latest dev_api
Terminal window
# List running containers on this node
docker ps
# List all containers (including stopped)
docker ps -a
# Exec into a running container
docker exec -it <container_id> sh
# View container logs
docker logs <container_id> --tail 100 -f
# Inspect a container
docker inspect <container_id>
Terminal window
# List images on this node
docker images
# Pull an image from Harbor
docker pull harbor.ayinza.dev/library/sseris-api:latest
# Remove unused images (reclaim disk)
docker image prune -a
# Login to Harbor
docker login harbor.ayinza.dev
Terminal window
# List all volumes
docker volume ls
# Inspect a volume (see mount point)
docker volume inspect dev_postgresql_data
# Check disk usage by Docker
docker system df
# Full Docker cleanup (careful!)
docker system prune
Terminal window
# List all configs
docker config ls
# Inspect a config (see contents)
docker config inspect <config_name> --pretty
# Create a new config
docker config create my_config ./my-file.conf
# Remove a config (must not be in use)
docker config rm <config_name>
Terminal window
# Deploy/update a stack from a YAML file
docker stack deploy -c <file>.yml <stack_name>
# Remove a stack entirely (DESTRUCTIVE)
docker stack rm <stack_name>
# View stack tasks with status
docker stack ps dev
docker stack ps uat
docker stack ps shared
Terminal window
# Connect to DEV PostgreSQL
docker exec -it $(docker ps -q -f name=dev_postgresql) psql -U postgres
# Dump DEV database
docker exec $(docker ps -q -f name=dev_postgresql) \
pg_dumpall -U postgres | gzip > sseris-dev-$(date +%Y%m%d).sql.gz
# Restore DEV database
gunzip -c sseris-dev-20260208.sql.gz | \
docker exec -i $(docker ps -q -f name=dev_postgresql) psql -U postgres
-- List all databases
\l
-- Check database sizes
SELECT 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 connections
SELECT count(*) FROM pg_stat_activity;
-- Check table sizes in current database
SELECT 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 connection
SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = 'mydb' AND pid <> pg_backend_pid();
Terminal window
# Check disk usage
df -h
# Check memory usage
free -h
# Check running processes (top CPU)
top -o %CPU
# Check who is logged in
who
# Check system uptime
uptime
# Check open ports
ss -tlnp
Terminal window
# View current nginx configs
docker config ls | grep nginx
# Test nginx config inside container
docker exec $(docker ps -q -f name=dev_nginx) nginx -t
# Reload nginx (after config update)
docker service update --force dev_nginx
Terminal window
# Check VPN status (on either server)
wg show
# Restart WireGuard (if tunnel goes down)
systemctl restart wg-quick@wg0
# Check if peer is reachable
ping 10.10.0.1 # Azure (from Contabo)
ping 10.10.0.2 # Contabo (from Azure)
Terminal window
# Check certificate expiry for a domain
echo | openssl s_client -connect ayinza.dev:443 2>/dev/null | openssl x509 -noout -dates
# View certificate details
echo | 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-run
Terminal window
# Check runner status (on Contabo)
systemctl status actions.runner.*
# View runner logs
journalctl -u actions.runner.* -f --no-pager
# Restart the runner
systemctl restart actions.runner.*
Terminal window
# Check Harbor disk usage
du -sh /data/registry
du -sh /data/
# Login to Harbor CLI
docker login harbor.ayinza.dev
# Push an image
docker tag myimage:latest harbor.ayinza.dev/library/myimage:latest
docker push harbor.ayinza.dev/library/myimage:latest