Docker는 한마디로 '앱을 상자 하나에 통째로 담아, 어디서든 똑같이 실행하게 해주는 기술'입니다. 복잡한 설치 과정 없이 앱을 상자째 가져와 켜고, 필요 없으면 상자째 버리는 방식이라 홈서버 초보자에게 딱이죠. 이 글에서는 IT 전공자가 아니어도 이해할 수 있도록, Docker와 '컨테이너'라는 개념을 생활 속 비유로 풀어봅니다.
이 글은 홈랩 입문 시리즈 1편에 이어지는 개념 편입니다. NAS를 서버로 확장하는 큰 그림이 궁금하다면 1편을 먼저 보세요.
Docker를 '밀키트'에 비유하면 쉽다
Docker를 이해하는 가장 쉬운 방법은 '밀키트'를 떠올리는 것입니다. 예전에 요리를 하려면 재료를 각각 사고, 손질하고, 양념을 맞추는 복잡한 과정을 거쳐야 했죠. 프로그램 설치도 마찬가지였습니다. 앱 하나 깔려면 필요한 부품(라이브러리)을 일일이 맞추고, 다른 프로그램과 충돌하지 않는지 확인해야 했어요.
Docker의 컨테이너는 이 모든 재료와 조리법이 딱 맞게 들어간 밀키트와 같습니다. 상자를 열고 데우기만 하면 어디서든 똑같은 요리가 완성되듯, Docker 컨테이너는 앱 실행에 필요한 모든 것을 한 상자에 담아둡니다. 그래서 내 컴퓨터에서 되던 게 다른 서버에서 안 되는 '내 컴퓨터에선 됐는데' 문제가 사라져요. 명령어 한 줄이면 앱이 상자째 설치되고, 지우고 싶으면 상자째 버리면 끝. 시스템이 지저분해지지 않는다는 게 초보자에게 가장 큰 장점입니다.
컨테이너, 이미지, 볼륨 — 딱 세 단어만 기억하자
홈랩을 하다 보면 반복해서 나오는 세 단어가 있는데, 이것만 알면 충분합니다. 각각을 밀키트 비유로 이어서 설명하면 이렇습니다.
첫째, 이미지(Image)는 '밀키트 설계도'입니다. 앱을 만들기 위한 재료와 조리법이 담긴 원본이죠. 인터넷(Docker Hub)에서 남이 만들어둔 이미지를 그대로 받아올 수 있습니다. 둘째, 컨테이너(Container)는 그 설계도로 실제로 만든 '완성된 요리', 즉 지금 돌아가고 있는 앱입니다. 하나의 이미지로 컨테이너를 여러 개 만들 수도 있어요. 셋째, 볼륨(Volume)은 '반찬을 따로 담아두는 통'입니다. 컨테이너를 지워도 데이터는 볼륨에 남기 때문에, 앱을 지웠다 다시 깔아도 내 사진·설정이 그대로 유지됩니다. 이 세 개념만 손에 익으면 대부분의 홈랩 앱을 다룰 수 있습니다.
왜 홈서버에 Docker가 필수가 됐나
홈서버에서 Docker가 사실상 표준이 된 이유는 '설치와 관리가 압도적으로 쉬워서'입니다. 광고 차단기, 사진 서버, 비밀번호 금고를 각각 전통적인 방식으로 깔면 서로 충돌하고 서버가 금방 엉망이 되지만, Docker는 각 앱을 독립된 상자에 격리하기 때문에 서로 간섭하지 않습니다. 앱 열 개를 올려도 서버가 깔끔하게 유지되는 비결이죠.
또 하나, 전 세계 개발자들이 이미 만들어둔 이미지가 Docker Hub에 쌓여 있어서, 우리는 그걸 가져다 쓰기만 하면 됩니다. 직접 코딩할 필요 없이 명령어 몇 줄로 유명 앱을 내 서버에 올릴 수 있다는 뜻이에요. 그래서 이 시리즈의 뒷부분(광고 차단, 사진 백업 등)이 전부 Docker 위에서 돌아갑니다.
다음 편부터는 드디어 실습입니다. NAS나 미니PC 같은 장비가 없어도 괜찮습니다. 내 PC 안에 가상의 서버를 만들어 안전하게 연습하는 방법을 알려드릴게요. → 3편. 장비 없이 시작하는 홈랩 — VirtualBox 가상머신 구축