ChatGPT 요금이 부담스럽거나, 회사 데이터를 외부 API에 넘기기 꺼려질 때가 있습니다. 그럴 때 떠오르는 게 "내 컴퓨터에서 AI를 돌릴 순 없을까"라는 생각입니다.

Ollama와 Docker를 합치면 의외로 간단합니다. 저도 처음엔 "로컬 LLM은 GPU 좋은 사람만 쓰는 거 아닌가" 싶었는데, 맥북이나 평범한 윈도우 PC에서도 충분히 돌아가더군요.
이 글은 Docker는 들어봤지만 직접 써본 적 없는 분, 또는 Ollama를 설치는 했는데 컨테이너로 운영해보고 싶은 분을 위한 가이드입니다. 명령어를 한 줄씩 풀어 설명하니 따라오기만 하면 됩니다.
Ollama와 Docker, 둘이 왜 같이 쓰일까
Ollama는 AI 모델(Llama, Mistral, Gemma 등)을 내 컴퓨터에 설치하고 실행해주는 프로그램입니다. ChatGPT처럼 외부 서버에 요청을 보내는 게 아니라, 내 PC가 직접 모델을 돌립니다.
Docker는 프로그램을 "컨테이너"라는 격리된 박스 안에서 실행해주는 도구입니다. 비유하자면 컴퓨터 안에 작은 가상 컴퓨터를 하나 띄우는 셈인데, 본체 환경을 더럽히지 않고 깔끔하게 쓰고 버릴 수 있습니다.
Ollama 자체는 단독 설치도 가능합니다. 그런데 Docker로 띄우면 이런 장점이 있습니다.
| 항목 | 단독 설치 | Docker 사용 |
|---|---|---|
| 설치 흔적 | 시스템에 남음 | 컨테이너 삭제 시 깔끔 |
| 버전 관리 | 수동 업데이트 | 이미지 태그로 전환 |
| 다른 PC 이전 | 재설치 필요 | 명령어 한 줄로 복제 |
| 포트·자원 격리 | 약함 | 컨테이너 단위로 제어 |
여러 모델을 테스트하거나 서버에 배포할 계획이 있다면 처음부터 Docker로 익혀두는 게 낫습니다.
시작 전 준비물 체크
Docker Desktop과 약 8GB 이상의 여유 메모리, 그리고 모델 크기에 따라 4~20GB 정도의 디스크 여유 공간이 필요합니다.
- ☐Docker Desktop 설치 (Mac/Windows/Linux)
- ☐메모리 8GB 이상 (16GB 권장)
- ☐디스크 여유 공간 최소 10GB
- ☐인터넷 연결 (모델 다운로드용)
- ☐터미널 사용 기본 (명령어 복붙 가능 수준이면 OK)
Docker Desktop은 docker.com에서 무료로 받을 수 있습니다. 설치 후 작업 표시줄(또는 메뉴 막대)에 고래 모양 아이콘이 안정적으로 떠 있어야 준비 완료입니다.
💡 윈도우 사용자는 설치 도중 "WSL2 활성화"를 묻습니다. WSL2는 윈도우 안에서 리눅스를 돌리는 기능인데, Docker가 내부적으로 사용하므로 그냥 따라가면 됩니다.
5분 안에 컨테이너 띄우기 (CPU 버전)
GPU 없이 CPU만으로도 작은 모델은 충분히 돌아갑니다. 아래 명령어 한 줄이면 끝입니다.
터미널을 열고 입력합니다.
docker run -d \
-v ollama:/root/.ollama \
-p 11434:11434 \
--name ollama \
ollama/ollama
이 명령은 Ollama 공식 이미지를 받아 백그라운드에서 실행하라는 뜻입니다. 옵션을 하나씩 풀어보면 이렇습니다.
-d: 백그라운드 실행 (터미널을 닫아도 살아있음)-v ollama:/root/.ollama: 모델 파일을 컨테이너 밖에 저장 (컨테이너 지워도 모델은 남음)-p 11434:11434: 외부 11434 포트를 컨테이너 안 11434 포트로 연결 (Ollama 기본 포트)--name ollama: 컨테이너 이름 지정ollama/ollama: 사용할 이미지 이름
처음 실행하면 이미지를 받느라 1~2분 걸립니다. 받기가 끝나면 다음 명령으로 컨테이너 안에 들어가 모델을 다운로드합니다.
docker exec -it ollama ollama run llama3.2
llama3.2는 메타가 만든 비교적 가벼운 모델입니다(약 2GB). 다운로드가 끝나면 바로 채팅 프롬프트가 뜹니다. "안녕"이라고 입력하면 답이 나옵니다. 종료하려면 /bye를 입력합니다.
GPU를 쓰고 싶다면
엔비디아 GPU가 있다면 추론 속도가 5~10배 빨라집니다. CPU에서 답이 줄줄 나오던 게, GPU에서는 ChatGPT처럼 휙 쏟아집니다.
리눅스 또는 WSL2에서는 NVIDIA Container Toolkit이라는 추가 도구를 설치해야 합니다. Docker가 GPU를 인식하도록 다리를 놓아주는 역할입니다.
설치 후 명령어에 --gpus=all 한 줄을 추가합니다.
docker run -d \
--gpus=all \
-v ollama:/root/.ollama \
-p 11434:11434 \
--name ollama \
ollama/ollama
⚠️ 맥북(애플 실리콘)은 Docker 컨테이너 안에서 GPU 가속이 안 됩니다. 맥에서 GPU를 쓰려면 Docker 말고 Ollama를 그냥 직접 설치하는 편이 빠릅니다. 글 작성 시점 기준 Docker Desktop의 알려진 제약입니다.
모델 골라 쓰기
Ollama는 수십 개의 모델을 지원합니다. 메모리에 맞춰 고르면 됩니다.
| 모델 | 크기 | 권장 RAM | 용도 |
|---|---|---|---|
| llama3.2:1b | 1.3GB | 8GB | 가벼운 챗봇·요약 |
| llama3.2:3b | 2GB | 8GB | 일반 대화·번역 |
| mistral:7b | 4.1GB | 16GB | 코딩·분석 |
| llama3.1:8b | 4.7GB | 16GB | 균형형 |
| qwen2.5:14b | 9GB | 32GB | 고품질 답변 |
전체 목록은 ollama.com/library에서 볼 수 있습니다. 모델을 바꿔 쓰려면 컨테이너를 다시 만들 필요 없이 명령어만 바꾸면 됩니다.
docker exec -it ollama ollama pull mistral
docker exec -it ollama ollama run mistral
블로그 글 초안 쓰는 직장인이라면 llama3.2:3b로 시작해보고, 답변이 부족하다 싶으면 mistral로 올려 비교해보길 권합니다.
다른 프로그램에서 불러쓰기
Ollama는 OpenAI와 비슷한 형식의 API를 제공합니다. 이게 의외로 강력합니다.
컨테이너가 떠 있으면 http://localhost:11434로 요청을 보낼 수 있습니다. 흐름은 이렇습니다.
[ 내 앱 / 스크립트 ]
│
│ HTTP 요청
▼
[ localhost:11434 ]
│
▼
[ Docker 컨테이너 (Ollama) ]
│
▼
[ 모델 추론 → 응답 반환 ]
간단한 테스트는 터미널에서 curl로 가능합니다.
curl http://localhost:11434/api/generate -d '{
"model": "llama3.2",
"prompt": "한국의 수도는?",
"stream": false
}'
이 요청은 "llama3.2 모델에게 한국의 수도를 물어봐 줘"라는 뜻입니다. JSON 형태로 답이 돌아옵니다.
웹 UI를 원하면 Open WebUI라는 별도 컨테이너를 추가로 띄워 ChatGPT 같은 화면으로 쓸 수 있습니다. 이건 다음 글에서 따로 다룰 예정입니다.
자주 막히는 부분
직접 써보면서 만난 흔한 함정들입니다.
포트 11434가 이미 쓰이고 있다는 오류
기존에 Ollama를 단독 설치한 적이 있으면 충돌합니다. lsof -i :11434(맥/리눅스) 또는 netstat -ano | findstr 11434(윈도우)로 누가 쓰는지 확인하고, 기존 Ollama를 끄거나 Docker 쪽 포트를 -p 11435:11434처럼 바꿔줍니다.
모델 다운로드가 너무 느리다
Ollama 서버에서 직접 받기 때문에 시간대에 따라 차이가 큽니다. 새벽이 빠른 편입니다. 받다가 끊겼으면 같은 pull 명령을 다시 실행하면 이어받기가 됩니다.
메모리 부족으로 컨테이너가 죽는다
Docker Desktop은 기본 메모리 할당량이 낮게 잡혀 있을 수 있습니다. Settings → Resources에서 8GB 이상으로 늘려주세요. 7B 모델은 최소 6GB는 잡혀야 안 죽습니다.
컨테이너를 지웠더니 모델까지 다 사라졌다
위 명령어에서 -v ollama:/root/.ollama 옵션을 빠뜨린 경우입니다. Docker 볼륨에 모델을 분리 저장해야 컨테이너를 갈아도 모델이 남습니다. 한 번 다시 받으면 그다음부턴 안전합니다.
답변이 영어로만 나온다
작은 모델(1B~3B)은 한국어가 약합니다. qwen2.5나 gemma2 계열이 한국어가 상대적으로 낫고, 정 안 되면 프롬프트 끝에 "한국어로 답해줘"를 붙이는 게 가장 빠른 우회법입니다.
마무리
Ollama를 Docker로 띄우는 건 명령어 두 줄이면 끝나지만, 진짜 가치는 그다음부터입니다. 내 데이터를 외부에 보내지 않고, 인터넷 없이도 동작하고, 원하면 회사 서버에 그대로 옮겨 팀 전체가 쓰는 사내 챗봇으로 키울 수도 있습니다.
저도 처음엔 "이거 굳이 Docker까지 써야 하나" 싶었는데, 모델을 5~6개 갈아끼우다 보니 컨테이너로 묶어둔 쪽이 훨씬 깔끔하더군요. 일단 llama3.2:3b로 가볍게 시작해서 본인 PC가 어디까지 버티는지 가늠해보길 추천합니다.
다음 단계로는 Open WebUI를 붙여 브라우저에서 쓰거나, n8n·LangChain 같은 도구와 연결해 자동화 워크플로우로 확장하는 방향이 자연스럽습니다. 막히는 지점이 생기면 댓글로 남겨주세요.
'개발 & 기술 > DevOps·인프라' 카테고리의 다른 글
| Ollama 사용법 — 로컬에서 무료로 LLM 돌리기 입문 (0) | 2026.07.09 |
|---|---|
| Cloudflare Tunnel 5분 입문: 포트포워딩 없이 외부 접속 (0) | 2026.06.27 |
| Claude Desktop 메모리 너무 먹을 때 1.8GB 줄이는 법 (0) | 2026.06.21 |
| Proxmox 홈서버로 구글포토 대신 무제한 사진 백업하기 (0) | 2026.06.13 |
| GitHub Actions 입문, 비개발자도 자동화 1개 만들기 (0) | 2026.06.11 |