Building a Local LLM · 11/30 · Development Environment
Full series and learning sequence · Practice code ZIP
Docker can run the software behind a web chat application such as Open WebUI in containers. Before creating or deleting those containers, identify which data belongs to a persistent volume and which ports are published. That distinction determines where conversations and model files remain.
Check out the WSL2 environment in Part 10 and look at the support conditions for Docker Desktop. Once installed, check if the engine operates with a simple container.
Install Docker Desktop
Check the supported OS and WSL conditions in the official Windows installation documentation and install with WSL2 backend. If your company uses Docker Desktop, we also review the Terms of Use. With the app running, open a new PowerShell.
docker version
docker compose version
docker run --rm hello-world
If only Client appears in version and the server connection fails, first check whether the engine is ready. If you are blocked from downloading hello-world, check your network, proxy, and registry connections. If you check engine connection and image download separately, you can narrow down errors in the next step.
Image·Container·Volume
| target | role | If you delete it |
|---|---|---|
| image | Framework of program and execution environment | You can download it again next time you run it. |
| container | Running instance created from image | Internal write layer may disappear altogether |
| volume | Persistent data outside the container | You may lose your original conversations, accounts, and models. |
docker compose down usually cleans up containers and networks, leaving behind named volumes. Be careful because down -v erases the volume as well. Before copying the initialization example, make sure you have any conversations or account information stored on that volume.
Host address and port mapping
The port of the following web screen is specified as 127.0.0.1:3000:8080. On the left is the address and port of the Windows host, and on the right is the container port. If you leave out the host address, you can connect from other interfaces, so in local practice, even write down the address.
docker ps --format "table {{.Names}}\t{{.Ports}}"
docker volume ls
docker system df
When you call localhost from within a container, the container finds itself. Connect to other services in the same Compose project using the service name. This is why the Ollama address is written as ollama instead of localhost in the following article.
GPU delivery and image versioning
First, connect the two services by CPU configuration. GPU delivery is added after checking the NVIDIA GPU and WSL2 conditions supported by Docker Desktop. It’s not unusual for GPU usage to not increase while running a regular CPU container.
The main·latest tag can be changed to point to the new image. If you record the digest of successful images, you will have a standard to go back to. New versions are checked separately, backup and restoration paths for existing data are prepared, and then replaced.
reference material
Documentation and model tags checked: October 18, 2026. Primary lab environment: Windows 11 x64.



