# Mender Client Docker for ARM

**URL:** <https://hub.mender.io/t/mender-client-docker-for-arm/7925>\
**Category:** General Discussions\
**Tags:** raspberry-pi-3, docker, mender-client, raspberry-pi-4\
**Created:** [July 28, 2025, 11:02am UTC](https://hub.mender.io/t/mender-client-docker-for-arm/7925 "2025-07-28T11:02:08Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![G-IOT-M](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/g-iot-m/32/2542_2.png) [@G-IOT-M](https://hub.mender.io/u/G-IOT-M)\
**Post date:** [July 28, 2025, 11:02am UTC](https://hub.mender.io/t/mender-client-docker-for-arm/7925/1 "2025-07-28T11:02:08Z")

</div>

Hi. Our research project requires to run Mender Client on Docker using Raspberry Pi. Software in docker hub has only image for [linux/amd64](https://hub.docker.com/r/mendersoftware/mender-client-docker/tags).

Where to find images for linux/ARM or at least Dockerfile so we could build the image?

---

<div class="post-metadata">

**Author:** ![TheYoctoJester](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/theyoctojester/32/1444_2.png) [@TheYoctoJester](https://hub.mender.io/u/TheYoctoJester)\
**Post date:** [July 28, 2025, 12:23pm UTC](https://hub.mender.io/t/mender-client-docker-for-arm/7925/2 "2025-07-28T12:23:06Z")

</div>

Hi @G-IOT-M,

Thanks for reaching out! Unfortunately, there is neither client nor `Dockerfile` available, because it wouldn’t make practical sense - at least not in the current situation and feature set.

Let me explain:

- the Mender Client needs to access the A and B (a.k.a. “active” and “inactive”) partitions directly.
- depending on the bootloader integration in use, the Mender Client might even require to access block storage outside partitions directly, to read/write bootloader environment variables.  
Unless you add quite a bit of evil magic to container invocation, this is not possible as far as I know. And if you add that magic, you essentially break all isolation and the Mender Client can again access your full system. That is not by accident, its by design: how would you update a full system on the binary/block level if you can’t access the system… on the binary/block level?🤷‍♂️

What theoretically can be done is running the Mender Client along a somewhat customized Update Module in a container, which can in turn then access some storage areas that are exposed to the container as a volume mount. If your use case only mandates to update such resources, then this might be a viable route, but in most cases I know of the requirements actually demand more.

The image you might have found on the Docker Hub is _not_ a Mender Client distribution to update the host which runs it. It is an on-boarding example container that people can use to evaluate the usage and processes of Mender. It does not modify or update any files outside the container, and is definitely neither meant nor suited for OTA in production.

Greetz,  
Josef

---

<div class="post-metadata">

**Author:** ![G-IOT-M](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/g-iot-m/32/2542_2.png) [@G-IOT-M](https://hub.mender.io/u/G-IOT-M)\
**Post date:** [July 29, 2025, 8:03am UTC](https://hub.mender.io/t/mender-client-docker-for-arm/7925/3 "2025-07-29T08:03:09Z")

</div>

Yes we know how Mender handles the update and that it is impossible to update the device itself using the Mender in Docker. But in our case that is not intended. We are trying to manage bluetooth device updates from Mender.

To deploy an update from Mender to this bluetooth device a gateway is needed to translate the Mender deployment to firmware update commands. So, all we need from the client is ability run a python script when update is deployed from Mender.

Please correct me, but I think Mender client in Docker can handle this.

---

<div class="post-metadata">

**Author:** ![TheYoctoJester](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/theyoctojester/32/1444_2.png) [@TheYoctoJester](https://hub.mender.io/u/TheYoctoJester)\
**Post date:** [July 30, 2025, 10:30am UTC](https://hub.mender.io/t/mender-client-docker-for-arm/7925/4 "2025-07-30T10:30:50Z")

</div>

Hi @G-IOT-M,

Ok, now I understand the use case. Yes that should _probably_ work, as long as the hardware accesses which the python script needs to do are possible from within the container.

You can take a peek at [integration/extra/mender-client-docker-addons/Dockerfile at master · mendersoftware/integration · GitHub](https://github.com/mendersoftware/integration/blob/master/extra/mender-client-docker-addons/Dockerfile) as a starting point. The first thing is to get rid of the unnecessary parts like `mender-connect` and `mender-configure` in such a context, and then you add your custom functionality as an Update Module (see [Create a custom Update Module | Mender documentation](https://docs.mender.io/artifact-creation/create-a-custom-update-module) ).

I think that’s the right direction to get started for this kind of integration.

Greetz,

Josef
