The Quadra is not equipped with vast amounts of memory (a whole 2GB), but even with a 2K 24 bit color desktop running in a virtual frame buffer, it has 1,3GB available for running applications. Turning off the UI increases that to 1,7GB.
While I could run the applications I am thinking of playing with on this box as simple processes, using containerized applications would have some advantages. As long as the memory constraints of this little ARM SBC don’t make that impractical.
Docker or Not?
While I am very familiar with Docker (and somewhat familiar with Kubernetes and its light-weight variant K3S), I have not use Podman at all. The big win for my use case was the lack of a permanently running daemon. Less running software means less stress on my limited 2GB of memory. So, I am trying Podman on my little Armbian board…
Installing Podman
Installing it was simpler than I first thought, but not totally trivial:
sudo apt-get install podman uidmap slirp4netns
The two additional packages are required, but not listed as dependencies. Without them, trying to launch containers (or even get the version using podman version
fails. Once installed, you should be able to get the version information as follows:
quadra@inovato:~$ podman version
Version: 3.0.1
API Version: 3.0.0
Go Version: go1.15.15
Built: Wed Dec 31 16:00:00 1969
OS/Arch: linux/arm64
Running Containers
The podman
command line tool has the same syntax as the docker
command (in fact, some places suggest those familiar with Docker simply alias docker
to podman
in their shell so muscle memory doesn’t have to learn a new command!). To test, I ran up the default current build of NanoMQ – an MQTT broker I have used in other projects:
quadra@inovato:~$ podman run -d --name nanomq --rm docker.io/emqx/nanomq
7867f8b9d616c7ce47426ca7b04e226c5fed01fe13b6ad85b114d73759599674
quadra@inovato:~$ podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7867f8b9d616 docker.io/emqx/nanomq --url nmq-tcp://0... 54 minutes ago Up 54 minutes ago nanomq
Memory usage was great as well, so time to experiment more with Podman and see whether it will work for all the other things I had in mind. I’m not sure I will be able to build on this little box, so I’m also going to need to work out how to build containers for it on another platform…