WiFi Connect and Port 80

For communication., this may help: What firewall/port-blocking options are there on BalenaOS when using host network mode?

Docker layers can be a tricky business to dig into, or get a grip of. Couldn’t find a good explainer I liked. In short, what you are seeing there is correct file sizes, for each of the images individually. So if you exported them and took them somewhere else, that is how big they would be. But as they are running together on the same host, they are not taking up that space twice. When you start a container from that image, the container adds a layer to the read-only image, and docker only records the changes made to that image in a layer. When you start a second container of the same image, it makes its own layer of recorded changes, but shares the read-only base image. Your size then becomes original image size + size of changes recorded in container 1 + size of changes recorded in container 2.

That is why Docker has a weird scenario, where using one big container, and one small container, is actually less efficient than using the big container twice (space wise).

You can also share layers across images. If you do:

docker pull balenalib/orange-pi-zero-alpine

then do:

docker pull balenalib/orange-pi-zero-alpine-python

You will see a bunch of lines like:

b7d3d85a9f8d: Already exists

That is the layers that it shares with the last pull, as they are the same, it doesn’t pull them again, it just reuses the read only layers. It will be followed by things like:

13b1cc9a9ec1: Pull complete

Which is the python layers being pulled down to place on top.

So if you are tempted to use a Balena Alpine base image, which is around 60mbs, and then for another app use the official Alpine images, which are 5mb, you could end up adding 5mb extra to your devices that could be avoided by reusing the Balena Alpine image twice. Of course a better solution would be to use the 5mb Alpine image twice, but that has its own issues.

I am talking Docker here. Balena-engine which is based on Docker does most of the same things, although it also adds in a Delta system, which is pulling content from within layers.