Skip to content

Podman containers

Automated podman deployments

supported on qbee-agent version 2024.23 and later

Podman containers provide a more secure, lightweight, daemonless alternative to docker and widely adoped in an IoT or Linux environment. The Podman configuration bundle allows to automatically deploy podman containers from any publicly or privately hosted repository.

Make sure Posman is installed on the system, if not - check out the Podman installation guide. You can also install podman via qbee, using our software management. The agent will use the podman version that is available on the device.

Once a defined podman container exits, it will be automatically restarted.

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

Configuration podman

Private images

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.

Configuration Podman Registry

In the device inventory tab it is possible to see additional information about the podman container.

If you need additional Podman functionality, and since Podman is compatible with Docker compose, 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.

Example

In this example we will deploy a Podman container that contains NGINX web server, and then verify that it is running.

The following configuration will be used:

  • Name: demo-httpd
  • Image: docker-io/libraty/httpd
  • Podman arguments: -p 8080:80/tcp

Please follow the following steps to deploy the container:

  1. Open the device Congiguration section and select group/device you want to use and then "Podman". You can use tags too.
  2. Enter values above in the configuration form and click "Save changes".
  3. After the configuration is applied, the container will be started and the NGINX web server will be available on port 8080.
  4. You can check that the container is running by checking the Podman tab in the device inventory section and logs.
Inventory

Podman inventory

Logs

Podman logs

Accessing the container

You can access your nginx container by using qbee-cli or qbee-connect.

qbee-cli
./qbee-cli connect -d <your device id> -t <your local port>:localhost:8080
qbee-connect

Podman qbee-connect