Local LLM 구축하기 · 11/30 · 개발 환경
Open WebUI 같은 웹 채팅 화면은 Docker 컨테이너로 실행할 수 있습니다. 필요한 프로그램을 묶어 띄울 수 있어 준비가 편해요. 다만 컨테이너를 지웠을 때 대화와 모델이 어디에 남는지는 먼저 알아 두어야 합니다.
10편의 WSL2 환경을 확인하고 Docker Desktop의 지원 조건을 살펴봅니다. 설치를 마치면 간단한 컨테이너로 엔진이 동작하는지 확인합니다.
Docker Desktop 설치
공식 Windows 설치 문서에서 지원 OS와 WSL 조건을 확인한 뒤 WSL2 백엔드로 설치합니다. 회사에서 사용한다면 Docker Desktop의 이용 조건도 함께 검토합니다. 앱을 실행한 상태에서 PowerShell을 새로 엽니다.
docker version
docker compose version
docker run --rm hello-world
version에 Client만 나오고 Server 연결이 실패한다면 엔진이 준비됐는지부터 확인합니다. hello-world 다운로드에서 막히면 네트워크·프록시·레지스트리 연결을 살펴보세요. 엔진 연결과 이미지 다운로드를 나눠 확인하면 다음 단계의 오류도 좁혀 볼 수 있습니다.
이미지·컨테이너·볼륨
| 대상 | 역할 | 삭제하면 |
|---|---|---|
| 이미지 | 프로그램과 실행 환경의 틀 | 다음 실행에 다시 내려받을 수 있음 |
| 컨테이너 | 이미지로 만든 실행 인스턴스 | 내부 쓰기 계층은 함께 사라질 수 있음 |
| 볼륨 | 컨테이너 밖의 지속 데이터 | 대화·계정·모델 원본을 잃을 수 있음 |
docker compose down은 보통 컨테이너와 네트워크를 정리하고 이름 있는 볼륨을 남깁니다. down -v는 볼륨까지 지우므로 주의해야 합니다. 초기화 예제를 복사하기 전에 그 볼륨에 대화나 계정 정보가 저장돼 있는지 확인합니다.
호스트 주소와 포트 매핑
다음 웹 화면의 포트는 127.0.0.1:3000:8080으로 지정합니다. 왼쪽은 Windows 호스트의 주소와 포트, 오른쪽은 컨테이너 포트입니다. 호스트 주소를 빼면 다른 인터페이스에서도 접속할 수 있으므로 로컬 실습에서는 주소까지 적습니다.
docker ps --format "table {{.Names}}\t{{.Ports}}"
docker volume ls
docker system df
컨테이너 안에서 localhost를 호출하면 그 컨테이너 자신을 찾습니다. 같은 Compose 프로젝트의 다른 서비스에는 서비스 이름으로 접속해요. 다음 글에서 Ollama 주소를 localhost 대신 ollama로 쓰는 이유입니다.
GPU 전달과 이미지 버전
우선 CPU 구성으로 두 서비스를 연결합니다. GPU 전달은 Docker Desktop이 지원하는 NVIDIA GPU와 WSL2 조건을 확인한 뒤 추가합니다. 일반 CPU 컨테이너를 실행한 상태에서 GPU 사용량이 오르지 않는 것은 이상한 현상이 아닙니다.
main·latest 태그는 새 이미지를 가리키도록 바뀔 수 있어요. 성공한 이미지의 digest를 기록해 두면 되돌아갈 기준이 생깁니다. 새 버전은 별도로 확인하고, 기존 데이터의 백업과 복원 경로를 마련한 뒤 교체합니다.
참고 자료
문서·모델 태그 확인 기준: 2026년 10월 18일. 기본 실습 환경: Windows 11 x64.




답글 남기기