Using Docker with the qbee Docker automation

Manage docker containers on edge devices

Docker containers provide a simple and efficient way to run your docker images in an IoT embedded Linux environment. This tutorial shows you how to manage Docker containers with the built-in Docker management configuration. Here is a "docker compose" tutorial.

Docker containers can be started from any publicly or privately hosted images. Once a defined docker container exits, it will be automatically restarted for you. As a prerequisite you need to install Docker on your devices, either via "file distribution" or "software management".

Definition of a container can be as simple as providing a name for it and an image to use to start and can be customized with optional arguments (passed to the docker command line when starting containers), an environmental file (which needs to be uploaded using our File Manager), as well as a command to run (which will override the default command from the provided docker image).

!docker-containers

For privately hosted images, it's required to provide authentication credentials using the "Registry Authentication" tab. It requires a repository hostname to which we want to authenticate, as well as username and password. When using private repositories, the image name must include the repository hostname in it.

For example an image:

my-image:latest" -> hosted in "my.private-repository.com"

should be defined as

my.private-repository.com/my-image:latest

in a container definition.

!docker-containers

qbee docker containers do not work with internal firewall management

The current implementation of docker containers doesn't work with the qbee managed firewall. While using docker, please manage the firewall with a script using file distribution.

When working with Docker containers it is also interesting to see which containers are on the devices and what the state is. This is taken care of by the qbee inventory. Go to any device running docker and visit the "Docker info" tab. Here the following information is recorded:

Docker containerDocker container details
!dev-docker-container!dev-docker-detail
Docker imagesDocker networks
!dev-docker-images!dev-docker-networks

If you need additional Docker functionality you might want to look at how qbee supports you with "docker compose" or jump right into a complex Docker compose use case deploying multiple Docker containers creating a full Node-RED, InfluxDB and Grafana system on an embedded edge device.