Docker라는 단어가 자꾸 나온다

AI 도구를 설치하다 보면 “Docker로 실행하세요"라는 안내를 자주 봅니다. 개발 관련 글에서도 Docker가 빠지지 않습니다.

근데 Docker가 정확히 뭔지 모르겠다는 분들이 많습니다. 최대한 쉽게 설명해보겠습니다.

Docker = 프로그램을 담는 상자

비유로 설명하면, Docker는 프로그램과 그 프로그램이 필요로 하는 모든 것을 하나의 상자(컨테이너)에 담는 기술입니다.

비유: 이사

일반 설치 = 이사할 때 가구를 다 분해해서 새 집에서 다시 조립 Docker = 방 전체를 통째로 들고 이사

Docker 컨테이너 안에는 프로그램 + 필요한 라이브러리 + 설정이 모두 들어있어서, 어느 컴퓨터에서든 똑같이 실행됩니다.

왜 필요한가

“내 컴퓨터에서는 되는데” 문제

개발하다 보면 이런 일이 자주 생깁니다:

  • A의 컴퓨터에서는 잘 돌아감
  • B의 컴퓨터에서는 에러남
  • 이유: Python 버전이 다르거나, 라이브러리 버전이 다르거나…

Docker를 쓰면 이런 문제가 사라집니다. 컨테이너 안에 환경이 고정되어 있으니까, 누가 어디서 실행해도 같은 결과가 나옵니다.

AI 도구 설치가 편해진다

AI 도구들은 의존성이 복잡합니다. Python 버전, CUDA 버전, 라이브러리 버전이 다 맞아야 하는데, 이걸 하나하나 맞추는 게 고통입니다.

Docker 이미지를 받으면 이 모든 게 이미 세팅되어 있어서, 한 줄이면 실행됩니다.

docker run -it some-ai-tool

Docker의 핵심 개념 3가지

1. 이미지 (Image)

프로그램과 환경이 담긴 설계도입니다. 읽기 전용이라 바뀌지 않습니다.

2. 컨테이너 (Container)

이미지를 실행한 실체입니다. 하나의 이미지로 여러 컨테이너를 만들 수 있습니다.

3. Docker Hub

이미지를 공유하는 저장소입니다. 앱스토어처럼, 다른 사람이 만든 이미지를 다운받아 쓸 수 있습니다.

Docker vs 가상머신(VM)

비슷해 보이지만 다릅니다.

항목Docker가상머신
무게가벼움 (수 MB~GB)무거움 (수 GB~수십 GB)
시작 속도초 단위분 단위
성능거의 네이티브약간 손실
격리 수준프로세스 수준OS 수준

Docker는 운영체제를 통째로 가상화하지 않고, 필요한 부분만 격리하기 때문에 가볍고 빠릅니다.

일반 사용자도 Docker를 쓸 일이 있나?

있습니다. 특히:

  • 로컬 AI 도구 설치 — Stable Diffusion, Ollama 등을 Docker로 간편 설치
  • 개발 환경 세팅 — 블로그 서버, 데이터베이스 등
  • 홈 서버 — NAS, 미디어 서버 등을 Docker로 운영

Docker Desktop을 설치하면 GUI로도 관리할 수 있어서, 터미널이 어색해도 쓸 수 있습니다.

마치며

Docker는 처음에는 어렵게 느껴지지만, 한 번 익숙해지면 없이 못 사는 도구가 됩니다. “설치가 복잡한 프로그램을 한 줄로 실행할 수 있게 해주는 것"이라고 기억하면 됩니다.

AI에 관심 있다면 Docker는 언젠가 만나게 됩니다. 미리 개념만 알아두면 나중에 훨씬 편합니다.