Skip to content

Installing Icinga DB in Containers

This image integrates Icinga DB into your containerized environment.

Usage

docker network create icinga

docker run --rm -d \
    --network icinga \
    --name redis-icingadb \
    redis

docker run -d \
    --network icinga \
    --name mariadb-icingadb \
    -e MYSQL_RANDOM_ROOT_PASSWORD=1 \
    -e MYSQL_DATABASE=icingadb \
    -e MYSQL_USER=icingadb \
    -e MYSQL_PASSWORD=123456 \
    mariadb

docker run -d \
    --network icinga \
    --restart always \
    --name icingadb \
    -e ICINGADB_REDIS_HOST=redis-icingadb \
    -e ICINGADB_REDIS_PORT=6379 \
    -e ICINGADB_REDIS_PASSWORD=123456 \
    -e ICINGADB_DATABASE_HOST=mariadb-icingadb \
    -e ICINGADB_DATABASE_PORT=3306 \
    -e ICINGADB_DATABASE_DATABASE=icingadb \
    -e ICINGADB_DATABASE_USER=icingadb \
    -e ICINGADB_DATABASE_PASSWORD=123456 \
    icinga/icingadb

The container doesn’t need any volumes and takes the environment variables.

Environment Variables

The environment variables consists of the key ICINGADB_DATABASE_ and the configuration option name like HOST in uppercase.

ICINGADB_DATABASE_HOST=mariadb-icingadb

For more options, see the Icinga DB configuration documentation.

Connect via TLS

docker run -d \
    --network icinga \
    --restart always \
    --name icingadb \
    -e ICINGADB_REDIS_HOST=redis-icingadb \
    -e ICINGADB_REDIS_PORT=6379 \
    -e ICINGADB_REDIS_PASSWORD=123456 \
    -e ICINGADB_REDIS_TLS=true \
    -e ICINGADB_REDIS_CERT='[PEM-encoded content or path to a file (in a volume)]' \
    -e ICINGADB_REDIS_KEY='[PEM-encoded content or path to a file (in a volume)]' \
    -e ICINGADB_REDIS_CA='[PEM-encoded content or path to a file (in a volume)]' \
    -e ICINGADB_DATABASE_HOST=mariadb-icingadb \
    -e ICINGADB_DATABASE_PORT=3306 \
    -e ICINGADB_DATABASE_DATABASE=icingadb \
    -e ICINGADB_DATABASE_USER=icingadb \
    -e ICINGADB_DATABASE_PASSWORD=123456 \
    -e ICINGADB_DATABASE_TLS=true \
    -e ICINGADB_DATABASE_CERT='[PEM-encoded content or path to a file (in a volume)]' \
    -e ICINGADB_DATABASE_KEY='[PEM-encoded content or path to a file (in a volume)]' \
    -e ICINGADB_DATABASE_CA='[PEM-encoded content or path to a file (in a volume)]' \
    icinga/icingadb

Build it yourself

git clone https://github.com/Icinga/icingadb.git

docker build -t icingadb --file Containerfile .