9.5 Managing a Docker Swarm

You should become familiar with Docker Swarm official documentation on how a Docker Swarm operates. But the following docker commands are helpful when SSH'ing into your manager node to debug infrastructure issues.

To check the status of all running services

docker service ls

To scale a service that hasn't started, in order to check for bugs

docker service scale <service name e.g.: "opencrvs_metrics">=1

You want to get all stack information and see if there are any errors

docker stack ps opencrvs —no-trunc

To check the logs on a service

docker service logs <service name e.g.: "opencrvs_metrics">

To check logs or access a specific container

You need to check Docker swarm for the id of the containers running mongo, elasticsearch or resources in order to access To find which node hosts the container you are looking for, run this command on the manager node.

docker stack ps -f "desired-state=running" opencrvs

After running the previous command to discover which node is running a container, SSH into the right node and run the following to get the container id

docker ps

You need to check logs on the container

docker logs -f <container id e.g. "opencrvs_user-mgnt.1.t0178z73i4tjcll68a7r72enu">

You need to run commands inside a container

docker exec -it <container-id> <command e.g. "ls", "mongo", "printenv", "influxd">

Running

netstat -plant

Inside a container will tell you which ports are open and listening

You need to inspect a container to see networking and all other information

docker ps # to get the container id
docker inspect <container id e.g. "opencrvs_user-mgnt.1.t0178z73i4tjcll68a7r72enu">

You need to rollback the changes made to a service

docker service rollback opencrvs_user-mgnt

Last updated