Copied to Clipboard
Tip: Sometimes the best solution is the one that does not require installing anything.
The GPU Disappearing Act
After a RAM upgrade, my GPU vanished from the system. rocm-smi showed nothing. The PCIe slot was empty as far as Linux was concerned.
A reboot fixed it. A BIOS setting needed adjustment after the hardware change. But here is what I appreciated: the Docker stack came back up automatically. Restart policies meant I did not have to manually start each container. Docker remembered the desired state and restored it.
Important: These stories reinforce something: Docker handles the orchestration, but you still need to understand what is happening under the hood.
The Community Makes It Possible
I did not build that gfx906 image. Someone in the community did, then published it for others to use. I just pulled it.
This is the part of Docker that still amazes me. Docker Hub is not just a registry; it is a library of solved problems. Someone had my exact problem, solved it, and shared the solution as a container image.
When I publish my own images (those 37 on Docker Hub), I am doing the same thing. Someone will have a problem I already solved. They will find my image, pull it, and move on with their day.
The standardization matters. Because Docker images follow the same conventions, I could combine that community ROCm image with official images from Ollama, Qdrant, and Open WebUI. They all speak the same language. They all use the same networking model. They all mount volumes the same way.
Teaching Docker With Real Examples
I teach Docker to M2 students at Université d’Artois. When I explain why containers matter, I used to rely on the standard examples: consistent environments, reproducible builds, isolation.
Now I have a better story. I tell them about my GPU, the vendor dropping support, and the Reddit thread that saved my setup. I show them the compose file. I show them the stack running. I tell them about the invisible group and the healthcheck that couldn’t.
Their eyes light up when they realize what containers actually enable:
It is not just about packaging applications.
It is about routing around obstacles.
It is about community solutions to individual problems.
It is about giving hardware new life when vendors have moved on.
What This Means For You
Have older hardware? Check if someone has containerized a working software stack for it. Odds are, someone has.
Figured out how to make something work? Consider packaging it as a Docker image. Someone else will have the same problem next month.
Choosing between bare metal and containers? Consider the long-term maintenance burden. The container version might save you when the next major update breaks compatibility.
My GPU is running models it was never "supposed" to run. The silicon does not care about support matrices. It just needs the right instructions. Docker delivers those instructions reliably, every time.
This is my first article as a Docker Captain. I wanted to start with a story from the trenches, something real that happened to me. Docker is not just a tool I use. It is the reason my personal AI stack exists at all.
Resources
Here are the tools and communities that made this possible:
About the Author
Bruno Verachten is a Docker Captain, Senior Developer Relations for the Jenkins project, and teaches Docker to graduate students at Université d’Artois. His Docker Hub profile hosts 37 images with over 2.1 million downloads.
Docker Hub | LinkedIn | GitHub
<!-- Converted from AsciiDoc by asciidoc-to-jekyll converter Original file: /mnt/c/support/users/dev/ai/ia-perso/journal/docker-captain-article-draft.adoc Conversion date: 2026年01月25日 Notes: * Converted header image reference and photo credit to markdown * Converted all AsciiDoc headers (=, ==, ===) to markdown headers (, *,* ) * Converted inline formatting (bold to bold) * Converted admonitions (NOTE, TIP, IMPORTANT) to blockquotes with prefixes * Converted links from AsciiDoc text syntax to markdown text format * Converted AsciiDoc tables to markdown pipe tables * Converted code blocks from [source,language] delimiters to fenced code blocks * Converted definition list to markdown list format * Sidebar converted to blockquote * Q&A section simplified to question/answer format * Author bio box converted to plain text section * Maintained all semantic meaning and structure from original * Added proper Jekyll frontmatter with categories and tags -→