Docker information
Note
This document is updated, however, it may be good to read the docker compose and Dockerfile.* in the repository themselves for the most up-to-date information.
This guide assumes that docker and docker compose are present on your system.
Starting and Stopping
While docker can be used to start each individual container separately, using docker compose up --build is the preferred method because it starts all services in the correct order.
Pressing ctrl-c will cleanly shutdown interactive docker.
Pressing ctrl-c multiple times will kill the running images and leave docker in a somewhat funny state that likely requires running docker compose down before starting again
An additional flag -d can be supplied to run docker in detached mode.
Note
Use docker compose --file <filename> to select a different configuration
To start a single image, supply its name as an additional argument to docker compose up.
To stop all images, including in detached mode, run docker compose down.
Cleaning docker
The build instructions suggest using the --build flag which will build images before starting the containers.
Additionally, one may want to use the --force-recreate flag to recreate images even if ther configuration and images haven’t changed.
The following commands can be used (in this order) to further clean out docker and start with a cleaner state (-f with get rid of the confirmation):
Use
docker container pruneto prune all stopped containers[Optional] Use
docker image pruneto remove all unused imagesUse
docker volume pruneto prune all unused volumes
if explicit pruning does not work, use docker system prune -f -a --volumes to purge all.
Misc
Several things to keep in mind while running Web monitor via docker:
The option
-dwill start the web-monitor in the background. Remove it if you want to run the web-monitor in the foreground.The command
docker container logs CONTAINER_NAMEwill provide the runtime log for given container, whereCONTAINER_NAMEcan be found viadocker ps.Add option
--buildto force rebuild the container if the local changes are not reflected in the container.Add option
--force-recreateto recreate all images if--builddoes not work.- If all fails (e.g. the local changes are not showing up in the runtime instances):
stop the instance with
docker compose down.prune caches of images, container and volumes.
restart the instance with
docker compose up -d --build --force-recreate.
If you cannot find web-monitor at
localhost, it is possible that the standard http port 80 is used by another application. Here are two possible solutions:Stop the service running at port 80 and restart the instance.
Modify the port of nginx in the docker compose file to use a different port (e.g. change to
81:80).