# Create an update for a Docker Image

**URL:** <https://hub.mender.io/t/create-an-update-for-a-docker-image/4255>\
**Category:** General Discussions\
**Created:** [October 30, 2021, 2:52pm UTC](https://hub.mender.io/t/create-an-update-for-a-docker-image/4255 "2021-10-30T14:52:28Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![NicoCaldo](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/nicocaldo/32/1409_2.png) [@NicoCaldo](https://hub.mender.io/u/NicoCaldo)\
**Post date:** [October 30, 2021, 2:52pm UTC](https://hub.mender.io/t/create-an-update-for-a-docker-image/4255/1 "2021-10-30T14:52:28Z")

</div>

I have correctly followed this guide but, when it comes to generating a Mender Artifact it seems the image must be available on [https://hub.docker.io](https://hub.docker.io)

What about if I create my own image with a Docker file i.e.:

```auto
# syntax=docker/dockerfile:1

FROM python:3.8-slim-buster

WORKDIR /app

COPY serial_write.py serial_write.py

RUN pip install pyserial

CMD ["python3", "./serial_write.py"]

```

Am I still able to use Mender? (I’m on a Raspberry Pi 4)

---

<div class="post-metadata">

**Author:** ![kacf](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/kacf/32/146_2.png) [@kacf](https://hub.mender.io/u/kacf)\
**Post date:** [November 1, 2021, 8:04am UTC](https://hub.mender.io/t/create-an-update-for-a-docker-image/4255/2 "2021-11-01T08:04:34Z")

</div>

The Docker module supports normal Docker image syntax, which can include other servers. Check out this example from one of the Mender Enterprise images:

> [registry.mender.io/mendersoftware/workflows-enterprise-worker](http://registry.mender.io/mendersoftware/workflows-enterprise-worker)

However, it must be downloadable from a server. It does not package the Docker container inside the artifact. Someone asked about that functionality recently in the [Update Module page](https://hub.mender.io/t/docker/324/51).

---

<div class="post-metadata">

**Author:** ![NicoCaldo](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/nicocaldo/32/1409_2.png) [@NicoCaldo](https://hub.mender.io/u/NicoCaldo)\
**Post date:** [November 1, 2021, 8:18am UTC](https://hub.mender.io/t/create-an-update-for-a-docker-image/4255/3 "2021-11-01T08:18:20Z")

</div>

Your link returns a 404 Not Found Page

So basically I first need to build the image, host it on a server, and run the Update Module to create an artifact that will download it from my server?

---

<div class="post-metadata">

**Author:** ![kacf](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/kacf/32/146_2.png) [@kacf](https://hub.mender.io/u/kacf)\
**Post date:** [November 1, 2021, 8:32am UTC](https://hub.mender.io/t/create-an-update-for-a-docker-image/4255/4 "2021-11-01T08:32:50Z")

</div>

> [@NicoCaldo](#):
>
> Your link returns a 404 Not Found Page

Yes, you need a login for that page. It was just meant as an example of the syntax, the actual link itself is unimportant.

> [@NicoCaldo](#):
>
> So basically I first need to build the image, host it on a server, and run the Update Module to create an artifact that will download it from my server?

Correct!

---

<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:** [May 10, 2024, 7:03pm UTC](https://hub.mender.io/t/create-an-update-for-a-docker-image/4255/5 "2024-05-10T19:03:40Z")

</div>

A post was split to a new topic: [Docker Update Module without registry](https://hub.mender.io/t/docker-update-module-without-registry/6816)
