공부/Docker

Docker 와 Podman 의 차이

jimiini 2025. 2. 1. 16:32
반응형

 

Podman과 Docker는 컨테이너화된 애플리케이션을 관리하기 위한 도구로서 유사한 목적을 가지고 있지만 몇 가지 중요한 차이가 있습니다.

 

아래의 글을 통해서 그 차이에 대해서 설명해보겠습니다.

참조 : https://www.lambdatest.com/blog/podman-vs-docker/, https://www.lesstif.com/container/podman-98926748.html

1. Docker 와 Podman 의 아키텍처 및 아키텍처 독립성

[Docker]

  • Docker는 클라이언트-서버 아키텍처를 사용합니다.
  • Docker CLI (Command Line Interface)는 Docker daemon 통신하여 컨테이너를 생성하고 관리합니다.
  • Docker daemon은 이미지 빌드, 저장소 관리, 컨테이너 실행과 같은 작업을 수행합니다.
  • docker daemon 이 모든 컨테이너와 이미지를 관리하다 보니 도커 데몬이 죽거나 재시작하면 모든 컨테이너가 중지되는 문제가 있습니다.

[Podman]

  • daemon-less, Podman은 데몬이나 서버 없이 동작하는 명령줄 도구입니다.
  • 각 Podman 컨테이너는 독립적으로 실행되며, Podman CLI를 통해 직접 제어됩니다. 이는 Podman이 더욱 경량이고 아키텍처에 독립적이라는 것을 의미합니다.
  • Podman은 사용자 네임스페이스를 활용하여 보안을 강화하고, 루트 권한이 필요하지 않습니다.

2. Docker 와 Podman 의 루트 권한 요구

[Docker]

  • Docker daemon 에 권한이 집중되다보니 아무나 Docker CLI 로 도커 데몬을 제어하지 못하도록 root 사용자만 Docker CLI 를 사용하도록 했습니다.
  • root 권한이 필요하기 때문에 오히려 보안에 더 취약합니다.

[Podman]

  • Podman은 루트 권한 없이 사용할 수 있습니다. 각 컨테이너는 사용자의 네임스페이스에서 동작하며 루트 권한이 필요하지 않습니다.
  • 일반 사용자로 실행하여 담당자별 권한을 분리할 수 있기 때문에 시스템 운영자와 서비스/컨테이너 운영자로 분리하여 보안 측면에서 더 뛰어납니다.

3. Docker 와 Podman 의 이미지 관리

[Docker]

  • Docker 이미지는 Docker Hub 등의 중앙 저장소에 저장되며, 이미지 관리는 Docker 데몬에 의해 수행됩니다.

[Podman]

  • Podman은 이미지를 로컬 파일 시스템에 직접 저장하므로 외부 데몬이나 서버 없이도 이미지를 관리할 수 있습니다.

4. Docker 와 Podman 의 컨테이너 실행 환경

[Docker]

  • Docker는 시스템에 서비스로서 영향을 미칠 수 있습니다.
  • Docker는 기본적으로 사용자 네임스페이스를 사용하지 않습니다.

[Podman]

  • Podman은 시스템에 미치는 영향을 최소화하고, 루트 권한이 필요하지 않기 때문에 특히 호스트 시스템에 민감한 환경에서 유용합니다.
  • Podman은 각 컨테이너가 독립적인 사용자 네임스페이스에서 실행되도록 설계되어 보안을 강화합니다.
반응형