Every developer remembers their first docker run hello-world. The mix of excitement and wonder as that simple command pulls an image, creates a container, and displays a friendly message. But what if AI could make that experience even better?
As a technical writer on Docker’s Docs team, I spend my days thinking about developer experience. Recently, I’ve been exploring how AI can enhance the way developers learn new tools. Instead of juggling documentation tabs and ChatGPT windows, what if we could embed AI assistance directly into the learning flow? This led me to build an interactive AI tutor powered by Docker Model Runner as a proof of concept.
The Case for Embedded AI Tutors
The landscape of developer education is shifting. While documentation remains essential, we are seeing more developers coding alongside AI assistants. But context-switching between your terminal, documentation, and an external AI chat breaks concentration and flow. An embedded AI tutor changes this dynamic completely.
Imagine learning Docker with an AI assistant that:
- Lives alongside your development environment
- Maintains context about what you’re trying to achieve
- Responds quickly without network latency
- Keeps your code and questions completely private
This isn’t about replacing documentation. It’s about offering developers a choice in how they learn. Some prefer reading guides, others learn by doing, and increasingly, many want conversational guidance through complex tasks.
Building the AI Tutor
To build the AI tutor, I kept the architecture rather simple:

- The frontend is a React app with a chat interface. Nothing fancy, just a message history, input field, and loading states.
- The backend is an /api/chat endpoint that forwards requests to the local LLM through OpenAI-compatible APIs.
- The AI powering it all is where Docker Model Runner comes in. Docker Model Runner runs models locally on your machine, exposing models through OpenAI endpoints. I decided to use Docker Model Runner because it promised local development and fast iteration.
- The system prompt was designed with running docker run hello-world in mind:
You are a Docker tutor with ONE SPECIFIC JOB: helping users run their first "hello-world" container.
YOUR ONLY TASK: Guide users through these exact steps:
1. Check if Docker is installed: docker --version
2. Run their first container: docker run hello-world
3. Celebrate their success
STRICT BOUNDARIES:
- If a user says they already know Docker: Respond with an iteration of "I'm specifically designed to help beginners run their first container. For advanced help, please review Docker documentation at docs.docker.com or use Ask Gordon."
- If a user asks about Dockerfiles, docker-compose, or ANY other topic: Respond with "I only help with running your first hello-world container. For other Docker topics, please consult Docker documentation or use Ask Gordon."
- If a user says they've already run hello-world: Respond with "Great! You've completed what I'm designed to help with. For next steps, check out Docker's official tutorials at docs.docker.com."
ALLOWED RESPONSES:
- Helping install Docker Desktop (provide official download link)
- Troubleshooting "docker --version" command
- Troubleshooting "docker run hello-world" command
- Explaining what the hello-world output means
- Celebrating their success
CONVERSATION RULES:
- Use short, simple messages (max 2-3 sentences)
- One question at a time
- Stay friendly but firm about your boundaries
- If users persist with off-topic questions, politely repeat your purpose
EXAMPLE BOUNDARY ENFORCEMENT:
User: "Help me debug my Dockerfile"
You: "I'm specifically designed to help beginners run their first hello-world container. For Dockerfile help, please check Docker's documentation or Ask Gordon."
Start by asking: "Hi! I'm your Docker tutor. Is this your first time using Docker?"
Setting Up Docker Model Runner
Getting started with Docker Model Runner proved straightforward. With just a toggle in Docker Desktop’s settings and TCP support enabled, my local React app connected seamlessly. The setup delivered on Docker Model Runner’s promise of simplicity.
During initial testing, the model performed well. I could interact with it through the OpenAI-compatible endpoint, and my React frontend connected without requiring modifications or fine-tuning. I had my prototype up and running in no time.
To properly evaluate the AI tutor, I approached it from two paths. First, I followed the “happy path” by interacting as a novice developer might. When I mentioned it was my “first time” using Docker, the tutor responded appropriately to my prompts. It walked me through checking if Docker was installed using my terminal before running my container.

Next, I ventured down the “unhappy path” to test the tutor’s boundaries. Acting as an experienced developer, I attempted to push beyond basic container operations. The AI tutor maintained its focus and stayed within its designated scope.

This strict adherence to guidelines wasn’t about following best practices, but rather about meeting my specific use case. I needed to prototype an AI tutor with clear guardrails that served a single, well-defined purpose. This approach worked for my prototype, but future iterations may expand to cover multiple topics or complement specific Docker use-case guides.
Reflections on Docker Model Runner
Docker Model Runner delivered on its core promise: making AI models accessible through familiar Docker workflows. The vision of models as first-class citizens in the Docker ecosystem proved valuable for rapid local prototyping. The recent Docker Desktop releases have brought continuous improvements to Docker Model Runner, including better management commands and expanded API support.
What worked really well for me:
- Native integration with Docker Desktop, a tool I use all day, every day
- OpenAI-compatible APIs that require no frontend modifications
- GPU acceleration support for faster local inference
- Growing model selection available on Docker Hub
More than anything, simplicity is its standout feature. Within minutes, I had a local LLM running and responding to my React app’s API calls. The speed from idea to working prototype is exactly what developers need when experimenting with AI tools.
Moving Forward
This prototype proved that embedded AI tutors aren’t just an idea, they’re a practical learning tool. Docker Model Runner provided the foundation I needed to test whether contextual AI assistance could enhance developer learning.
For anyone curious about Docker Model Runner:
- Start experimenting now! The tool is mature enough for meaningful experiments, and the setup overhead is minimal.
- Keep it simple. A basic React frontend and straightforward system prompt were sufficient to validate the concept.
- Think local-first. Running models locally eliminates latency concerns and keeps developer data private.
Docker Model Runner represents an important step toward making AI models as easy to use as containers. While my journey had some bumps, the destination was worth it: an AI tutor that helps developers learn.
As I continue to explore the intersection of documentation, developer experience, and AI, Docker Model Runner will remain in my toolkit. The ability to spin up a local model as easily as running a container opens up possibilities for intelligent, responsive developer tools. The future of developer experience might just be a docker model run away.
Try It Yourself
Ready to build your own AI-powered developer tools? Get started with Docker Model Runner.
Have feedback? The Docker team wants to hear about your experience with Docker Model Runner. Share what’s working, what isn’t, and what features you’d like to see. Your input directly shapes the future of Docker’s AI products and features. Share feedback with Docker.