Phase 3 — Deploy & Use · Step 8 of 14

PULL — Pull an Image from Docker Hub

Docker Hub hosts thousands of pre-built container images. Pull the ones you need for your cluster — but always check architecture compatibility first.

Find Images on Docker Hub

Browse available images at: hub.docker.com

🏗️
Stack context: Each image you pull is referenced by name and tag in your docker-compose.yml. When you run docker stack deploy, Docker automatically distributes that image to every Swarm node — but pre-pulling it on the master saves time and avoids pull timeouts on slow SD card connections.

Pull an Image

Pull example — custom MariaDB for Raspberry Pi
$ docker pull jorgenlarsen/mariadb10.3:rpi

rpi: Pulling from jorgenlarsen/mariadb10.3
7d9beb74056b: Pull complete
0065911503a4: Pull complete
6fc95aeae22a: Pull complete
...
Status: Downloaded newer image for jorgenlarsen/mariadb10.3:rpi
docker.io/jorgenlarsen/mariadb10.3:rpi

List Local Images

List downloaded images
$ docker images

REPOSITORY                 TAG      IMAGE ID       CREATED        SIZE
jorgenlarsen/mariadb10.3   rpi      09f38af10d8f   2 weeks ago    316 MB
portainer/portainer-ce     latest   5526251cc61f   7 weeks ago    163 MB

⚠️ Architecture Compatibility

Images on Docker Hub are architecture-specific. The Raspberry Pi uses ARM — not x86/amd64. Always check tags carefully.

Pi ModelArchitectureTag to look for
Pi 4 (64-bit OS)arm64 / aarch64arm64v8, arm64
Pi 3 B+ (32-bit OS)armv7l / armhfarm32v7, armhf, rpi
🚫
If you see this error when running a container:
standard_init_linux.go:211: exec user process caused "exec format error"

You have pulled an image compiled for the wrong CPU architecture. Use docker inspect to check:
Check image architecture
# Inspect by Image ID or name
$ docker inspect 09f38af10d8f | grep -i arch

# Look for:
"Architecture": "arm"
📘
Full command reference: docs.docker.com — docker pull