Starting the monitor
Starting from the command line
Once the monitor image has been installed, use the
command to start the monitors container (and thus the monitor
itself). Note, the user starting the container must belong to the
docker group on the host OS.
When starting the container there are a number of required arguments:
docker run \ --detach \ --name hamonitor \ --net host \ --privileged \ --restart unless-stopped \ --volume <host directory>:/tmp/hamonitor \ --volume /lib/modules:/lib/modules \ dkr.high-availability.com/hamonitor:v2.1 \ --publish 13514
The docker run command both creates the container and starts it. Once a container has been created there is no need to use the run command again as it will attempt to create an already existing container (and return an error). To start and stop the monitor use the docker start and stop commands:
# docker stop hamonitor # docker start hamonitor
Note that the
--publish argument should always be last on the
command line and that a suitable value for the
parameter should be provided (see the description below for more
details). These arguments have the following effect:
Runs the monitor in the background.
Assigns a friendly name to the container that can then be used as a
more memorable argument to other docker commands (such as docker start
and stop) as opposed to the less memorable image ID that docker uses
Furthermore, note that although an ID is unique to an installed image, a new image ID is generated on every upgrade, meaning any process that refers to a specific image ID will have to be modified should the image ID change (shell scripts for example). Using a friendly name avoids this problem.
Use the host’s network stack for the container.
Gives all capabilities to the container and access to the host’s devices (those that reside under /dev).
Specifies the restart policy for the container, in this case always
restart the container if it stops, unless it is manually stopped in
which case it will not be restarted even if the docker daemon itself
restarts (alternatively, if
always is specified instead of
unless-stopped then a stopped container will be restarted if the
docker daemon restarts). Also note that should the monitor process
terminate for any reason the container itself will exit and docker
will restart another instance of the container.
--volume <host directory>:/tmp/monitor
Maps the directory
<host directory> on the docker host to the
/tmp/hamonitor in the container.
The container directory portion of this mapping (
used by the monitor to store all it’s permanent data (encrypted
database, logs etc) and cannot be changed. The
portion should be any suitable local filesystem directory on the
docker host; it is recommended this is a local filesystem as opposed
to a remotely mounted one (SMB/NFS etc.) to avoid network outages
etc. adversely affecting the running monitor.
By using a mapping from the docker host to the container rather than using a local filesystem within the container gives a number of advantages:
- Upgrades can be performed without having to first backup data in the container (and then re-import afterwards).
- The monitor data can be backed up without the need for the container to be running.
- It simplifies migration of the container to another host
Exposes the host’s modules directory to the container. This is
required for iSCSI monitoring as the
iscsi_tcp kernel module is
required when monitoring iSCSI connections (the monitor automatically
loads the module when iSCSI monitoring is detected in its
The name of the docker image to run. Note the version number (v1.0 in this case) should correspond to the version downloaded.
The TCP port that the monitors REST API listens on for incoming requests; port 13514 is used by default if one is not provided on the command line.