멀티 유저 관점에서 본 컨테이너 도구 — 환경 분리와 사용자 분리는 어떻게 다른가




지난 편까지 다섯 가지 컨테이너 도구를 비교했습니다. 그런데 그 비교에서 잘 드러나지 않는 차원이 하나 있습니다. “여러 사용자가 같은 머신을 공유할 때 도구가 어떻게 동작하는가” 입니다.

개인 노트북에서 혼자 쓸 때는 모든 도구가 비슷해 보입니다. 하지만 시나리오를 조금만 바꿔보면 — 사내 공용 서버 한 대에 개발자 열 명이 붙는다든지, 한 머신에서 업무용·개인용 환경을 깔끔하게 분리해 쓰고 싶다든지 — 도구들의 구조적 차이가 단숨에 드러납니다.

이번 편에서는 이 멀티 유저 관점에서 도구들을 다시 보겠습니다. 표면적으로는 비슷해 보이는 도구들이 실은 전혀 다른 격리 모델 위에 서 있다는 것을 짚는 것이 목적입니다.

먼저 짚고 갈 개념 — “독립된 사용자 공간”의 세 층위

“멀티 유저”라는 말은 사람마다 다르게 해석합니다. 본격적으로 비교하기 전에, 이 개념을 세 층위로 나눠보겠습니다.

1층. OS 레벨 사용자 분리

리눅스에서 사용자별로 홈 디렉터리·권한이 분리된 것과 같은 수준입니다. 사용자 A의 컨테이너를 사용자 B가 보거나 건드릴 수 없어야 합니다.

2층. 런타임/데몬 분리

컨테이너 데몬이 사용자별로 따로 동작하는지, 아니면 하나의 데몬을 공유하는지의 문제입니다. 데몬을 공유하면 사실상 모든 사용자가 root 권한을 가지는 셈이라 보안상 큰 문제가 됩니다. 이 점이 의외로 많이 간과됩니다.

3층. 리소스/네트워크 격리

사용자별로 CPU·메모리 한도, 네트워크 대역, 이미지 저장 공간이 분리되는지의 문제입니다.

이 세 층위를 기준으로 도구들을 차례로 보겠습니다.

1. Docker Desktop — 사실상 단일 사용자

Docker Desktop은 로그인한 한 명의 사용자를 위한 도구입니다. 내부적으로 사용자 홈 디렉터리에 VM과 설정을 두기 때문에, 같은 머신에 여러 OS 계정이 있어도 각자 따로 설치·실행해야 합니다. 여러 사람이 동시에 접속해 쓰는 용도로는 설계되지 않았습니다.

멀티 유저 환경이 필요하면 Docker Desktop이 아니라 리눅스 서버에 Docker Engine을 깔고 권한을 나누는 쪽으로 가야 합니다. 그런데 여기서도 함정이 있습니다. 리눅스의 Docker Engine은 기본 구조가 단일 데몬이라, docker 그룹에 속한 사용자는 사실상 root와 동등한 권한을 가집니다. 이게 무슨 뜻이냐면, 다른 사용자의 파일이 마운트된 컨테이너를 띄우거나, 호스트의 root 디렉터리에 접근하는 것이 가능하다는 얘기입니다.

그래서 멀티 유저 리눅스 환경에서는 rootless Docker 모드로 운영하거나, 아예 Podman으로 가는 것이 권장됩니다.

2. Colima — 사용자별 독립 인스턴스 가능

Colima는 이 점에서 꽤 깔끔합니다. 각 OS 사용자가 자기 홈 디렉터리 아래에 자기만의 VM 인스턴스를 띄웁니다. 사용자 A의 colima start와 사용자 B의 colima start는 서로 다른 VM·다른 Docker 소켓을 만듭니다.

심지어 한 사용자가 여러 프로파일을 운영할 수도 있습니다.

colima start --profile work --cpu 4 --memory 8
colima start --profile personal --cpu 2 --memory 4

각 프로파일은 독립된 VM·CPU·메모리·디스크를 가집니다. 업무용·개인용·프로젝트별 환경을 완전히 분리할 수 있습니다.

다만 이 분리는 어디까지나 OS 사용자 계정 단위의 분리이지, “한 계정 안에서 여러 사용자에게 서비스를 제공하는” 모델은 아닙니다. 또한 macOS는 데스크톱 OS라 멀티 유저 서버 시나리오 자체가 잘 맞지 않습니다.

Colima가 잘하는 것: 한 사람이 여러 환경을 분리해 쓰는 것 (= 환경 분리) Colima가 잘 못하는 것: 한 머신에 여러 사람이 붙어서 동시에 쓰는 것

3. Rancher Desktop — Docker Desktop과 유사한 단일 사용자 모델

Rancher Desktop도 데스크톱 도구라 기본 가정이 “한 사람이 한 머신에서 쓴다”입니다. OS 계정을 나누면 각자 따로 실행할 수는 있지만, 같은 계정 내에서 여러 사용자 공간을 만드는 기능은 없습니다.

다만 Kubernetes(K3s)가 내장되어 있다는 점이 변수입니다. 격리가 필요하면 컨테이너 레벨이 아니라 Kubernetes 네임스페이스 레벨로 나누는 것이 Rancher Desktop의 자연스러운 접근입니다. 이건 멀티 유저라기보다 “다중 환경의 논리적 분리”에 가깝습니다.

4. Podman — 이 주제에서 가장 강한 도구

Podman은 설계 자체가 “사용자마다 자기 컨테이너를 가진다” 는 모델입니다. 이 주제에서는 다른 도구들과 차원이 다릅니다.

핵심은 rootless 모드입니다. 일반 사용자가 별도 권한 없이 컨테이너를 실행할 수 있고, 그 컨테이너는 그 사용자의 UID 네임스페이스 안에서만 살아 있습니다. 사용자 A의 podman ps는 사용자 B의 컨테이너를 보지 못합니다. 데몬이 없으니 “데몬을 공유해서 권한이 새는” 문제 자체가 존재하지 않습니다.

# 사용자 A
$ podman ps
CONTAINER ID  IMAGE         STATUS    NAMES
abc123        nginx:latest  Up        web-a

# 사용자 B (같은 머신, 같은 시각)
$ podman ps
CONTAINER ID  IMAGE         STATUS    NAMES
def456        redis:latest  Up        cache-b

A는 B의 컨테이너를 못 보고, B도 A의 컨테이너를 못 봅니다. 둘은 같은 호스트에서 돌고 있지만, 커널 수준에서 격리되어 있습니다.

리눅스 서버에 Podman을 깔면 여러 개발자가 같은 머신에서 각자 안전하게 컨테이너를 운영할 수 있습니다. 이건 Docker Engine으로는 깔끔하게 안 되는 시나리오입니다. 기업·교육·연구 환경에서 Podman이 채택되는 가장 큰 이유 중 하나입니다.

macOS·Windows의 Podman은 내부적으로 VM을 띄우는 구조라, 이 경우엔 “OS 사용자별로 각자의 Podman 머신을 가진다”에 가깝습니다. 즉 Podman의 멀티 유저 강점은 리눅스 서버에서 가장 빛납니다.

5. OrbStack — 단일 사용자, 다만 다중 환경 지원

OrbStack은 macOS 데스크톱 앱이고, 한 사람이 자기 Mac에서 빠르게 쓰는 데 최적화되어 있습니다. 멀티 유저 시나리오는 명시적으로 지원하지 않습니다.

다만 OrbStack의 강점인 Linux Machines(경량 VM) 기능을 활용하면, 한 사용자가 여러 개의 독립된 리눅스 환경(Ubuntu, Debian 등)을 만들어 용도별로 분리할 수 있습니다. 이건 “사용자 분리”라기보다 “환경 분리” 에 가깝습니다 — Colima 프로파일과 비슷한 개념입니다.

한눈에 비교

도구OS 사용자별 분리한 계정 내 다중 환경rootless / 보안 격리멀티 유저 서버 적합성
Docker Desktop△ (각자 설치)XX부적합
ColimaOO (프로파일)부분 가능
Rancher Desktop△ (K8s 네임스페이스)부적합
PodmanOOO (rootless 기본)적합
OrbStackO (VM 분리)X부적합

핵심 — Colima와 Podman은 다른 자리에 있다

이 비교에서 가장 중요한 통찰은 다음과 같습니다.

Colima의 강점은 “환경 분리”이고, Podman의 강점은 “사용자 분리”입니다.

언뜻 비슷해 보이지만 본질이 다릅니다.

  • Colima 프로파일한 사람이 여러 환경을 깔끔하게 나눠 쓰기 위한 도구입니다. VM 단위로 분리되며, 같은 OS 사용자 안에서 동작합니다.
  • Podman의 rootless여러 사람이 한 머신에서 안전하게 공존하기 위한 구조입니다. UID 네임스페이스 수준의 커널 격리를 제공합니다.
ColimaPodman
분리의 단위환경(VM·프로파일)사용자(UID 네임스페이스)
주 사용처개인 데스크톱공용 리눅스 서버
보안 격리 강도약함 (VM 수준)강함 (커널 수준 rootless)
진짜 멀티 유저?간접적직접적

이 둘은 경쟁 관계가 아니라 다른 자리에 있는 도구입니다.

시나리오별 추천

“한 대의 서버를 팀원 여러 명이 공유합니다”

데스크톱 도구가 아니라 리눅스 서버 + Podman(rootless) 또는 rootless Docker가 정답입니다. 가장 깔끔하게 사용자별 격리가 됩니다. Podman이 첫 번째 선택지입니다.

“개인 머신에서 업무용·개인용·프로젝트별 환경을 나누고 싶습니다”

Colima 프로파일 또는 OrbStack의 Linux Machines 기능이 가볍고 편합니다. 환경 분리에는 이쪽이 적합합니다.

“여러 팀이 같은 클러스터를 쓰면서도 격리가 필요합니다”

도구 레벨이 아니라 Kubernetes 네임스페이스 + RBAC + 리소스 쿼터 조합으로 가야 합니다. Rancher Desktop이 로컬 학습용으로 적합하고, 실제 운영은 EKS/GKE/AKS 같은 관리형 K8s가 표준입니다.

“보안 감사·규제 환경입니다”

Podman이 거의 독보적입니다. 데몬리스·루트리스 구조가 감사 요구사항에 잘 맞고, RHEL 계열에서 공식 지원됩니다.

“업무 환경과 공용 서버를 모두 다뤄야 합니다”

계층을 나눠 쓰는 것이 현실적입니다. 개인 머신은 Colima나 OrbStack, 공용 서버는 Podman. 두 도구가 경쟁하는 게 아니라 서로 다른 자리에 있다는 것을 기억하면 선택이 쉬워집니다.

정리

  • “멀티 유저”는 OS 사용자 분리 / 데몬 분리 / 자원 격리의 세 층위로 나눠 봐야 한다
  • Docker Desktop·Rancher Desktop·OrbStack은 단일 사용자 도구다
  • Colima는 환경 분리(프로파일)에 강하지만, 진짜 멀티 유저용은 아니다
  • Podman은 rootless·daemonless 구조로 진짜 멀티 유저 환경에 적합하다 — 특히 리눅스 서버에서
  • Colima와 Podman은 경쟁자가 아니라 다른 자리에 있는 도구

여기까지가 1부 “개념과 분류”의 마지막 편입니다. 컨테이너의 기초부터 도구 생태계, 다섯 도구의 비교, 그리고 멀티 유저 관점까지 — 큰 지도를 모두 그렸습니다.

다음 편부터는 2부 “도구별 심화 가이드” 가 시작됩니다. Docker Desktop을 시작으로 다섯 도구를 하나씩, 같은 구조(소개 → 특징 → 설치 → 사용법 → 실전 팁 → 다른 OS → 적합한 사용자)로 깊이 파고들겠습니다. macOS(Apple Silicon)를 기준으로, 실제로 손에 익을 수 있는 수준의 가이드를 목표로 합니다.




댓글 남기기