Running Docker and ROCm on Steam Deck (Neptune 6.11+) in 2025 Jun

🐧 Running Docker and ROCm on Steam Deck (Neptune 6.11+)

With SteamOS kernel 6.11+, Docker fails to start out-of-the-box due to missing kernel modules (bridge, br_netfilter, overlay). This guide walks you through enabling Docker, disabling the broken default bridge, and optionally testing ROCm-based containers.


🧱 Step 0 – Unlock the Filesystem

SteamOS uses a read-only root filesystem by default. Before making system changes:

sudo steamos-readonly disable

🔐 Step 1 – (Optional) Trust SteamOS Package Key

If pacman -Syu or installing packages throws a PGP signature error like:

error: filesystem: signature from "GitLab CI Package Builder" is unknown trust

Run this to locally trust Valve’s package signing key:

sudo pacman-key --lsign-key E7C3DED96617065132C1FF1A7E830EB6E79C8CE5

This ensures future package installs won’t be blocked.


📦 Step 2 – Install Docker

Install Docker and enable it to start on boot:

sudo pacman -S docker
sudo systemctl enable containerd.service
sudo systemctl enable docker.service

⚠️ Don’t start Docker yet — it will fail until the bridge issue is fixed.


🔧 Step 3 – Disable Docker’s Bridge Networking

The kernel lacks modules required for docker0. We must disable it:

sudo mkdir -p /etc/docker
sudo nano /etc/docker/daemon.json

Insert the following:

{
"bridge": "none"
}

Save and exit (Ctrl+O, Enter, Ctrl+X).


🚀 Step 4 – Start Docker

sudo systemctl start docker

Verify it’s working:

docker info

If docker ps gives a permission error:

sudo usermod -aG docker $USER
newgrp docker

🔒 Step 5 – Restore Read-Only Mode (Optional)

To lock the system again:

sudo steamos-readonly enable

⚙️ Step 6 – (Optional) Try ROCm Containers

Steam Deck’s APU is AMD-based. Full ROCm GPU compute is limited, but you can test container runtime:

docker run -it --privileged --network host --device=/dev/kfd --device=/dev/dri rocm/dev-ubuntu-22.04

Check if GPU interface is available:

ls /dev/kfd

If missing, you’re limited to CPU-mode workloads or userland experimentation.

Leave a Reply