기술 가이드

Debian 11에 Podman 설치 및 사용하기

4 min read 컨테이너 업데이트됨 22 Oct 2025
Debian 11에 Podman 설치 및 사용하기
Debian 11에 Podman 설치 및 사용하기

Podman 로고와 컨테이너 개념을 시각화한 이미지

개요

Podman(POD MANager)은 Red Hat에서 개발한 OCI 규격을 따르는 컨테이너 엔진으로, Docker의 데몬 의존성을 제거한 대체제입니다. libpod 라이브러리를 사용해 컨테이너 생태계를 관리하며 데몬 없이도 컨테이너를 실행할 수 있습니다. 이 가이드는 Debian 11에서 Podman을 설치하고 기본 워크플로를 설명합니다.

중요: Podman은 Docker와 비슷하지만 루트리스 모드(rootless)와 데몬 불필요라는 아키텍처 차이가 있어 일부 Docker 기반 워크플로는 추가 설정이 필요할 수 있습니다.

전제 조건

  • Debian 11이 설치된 서버
  • 루트 계정 또는 sudo 권한이 있는 사용자

Podman 설치

Debian 11 기본 저장소에는 Podman 패키지가 포함되어 있으므로 다음 명령으로 설치합니다:

apt-get install podman -y

설치 후 버전을 확인합니다:

podman --version

예상 출력:

podman version 3.0.1

추가 정보 확인:

podman info

(시스템 환경에 따라 출력 내용이 다를 수 있습니다. 예시 출력에는 아키텍처, 런타임, 메모리 등 시스템 정보가 포함됩니다.)

OCI 레지스트리 구성

Podman은 /etc/containers/registries.conf 파일을 참고해 이미지를 가져옵니다. 필요한 경우 편집해 레지스트리를 정의합니다:

nano /etc/containers/registries.conf

파일 끝에 다음을 추가할 수 있습니다(예: 비신뢰 레지스트리, 차단 목록 설정):

[registries.insecure]
registries = [ ]
# If you need to block pull access from a registry, uncomment the section below
# and add the registries fully-qualified name.
# Docker only
[registries.block]
registries = [ ]

저장 후 파일을 닫습니다.

노트: 레지스트리 설정은 네트워크 정책과 보안 요구사항에 맞게 조정해야 합니다.

Podman 기본 사용법

아래 섹션에서는 이미지 가져오기, 컨테이너 실행 및 관리의 기본 흐름을 단계별로 보여줍니다.

이미지 가져오기

Debian 이미지를 가져오려면:

podman pull debian

예시 출력(요약):

Resolved "debian" as an alias (/etc/containers/registries.conf.d/shortnames.conf)
Trying to pull docker.io/library/debian:latest...
Getting image source signatures
Copying blob 647acf3d48c2 done  
Copying config 827e561138 done  
Writing manifest to image destination
Storing signatures
827e5611389abf13dad1057e92f163b771febc0bcdb19fa2d634a7eb0641e0cc

다운로드된 이미지를 확인하려면:

podman images

예시 출력:

REPOSITORY                TAG     IMAGE ID      CREATED      SIZE
docker.io/library/debian  latest  827e5611389a  11 days ago  129 MB

컨테이너 실행 및 목록 확인

이미지에서 컨테이너를 실행합니다(백그라운드, 상호작용 비활성):

podman run -dit debian:latest

명령은 새 컨테이너 ID를 반환합니다. 실행 중 컨테이너 목록은 다음으로 확인합니다:

podman ps

예시 출력:

CONTAINER ID  IMAGE                            COMMAND  CREATED         STATUS             PORTS   NAMES
f85c4df5ab78  docker.io/library/debian:latest  bash     13 seconds ago  Up 13 seconds ago          competent_cori

컨테이너 검사, 로그, 접속

특정 컨테이너를 검사(inspect)하려면 컨테이너 ID나 이름을 사용합니다:

podman inspect f85c4df5ab78

로그 확인:

podman logs f85c4df5ab78

실행 중인 컨테이너에 셸로 접속하려면:

podman exec -it f85c4df5ab78 /bin/bash

컨테이너 내부 프롬프트 예시:

root@f85c4df5ab78:/#

컨테이너 셸에서 나가려면 exit를 입력합니다.

컨테이너 중지 및 제거

컨테이너 중지:

podman stop f85c4df5ab78

중지된 컨테이너 확인:

podman ps -a

컨테이너 제거:

podman rm f85c4df5ab78

최신 컨테이너를 대상으로 하는 명령들:

podman stop --latest
podman start --latest
podman rm --latest

모든 컨테이너 강제 삭제(주의해서 사용):

podman rm -f `podman ps -aq`

이미지 제거:

podman rmi 827e5611389a

예시 출력:

Untagged: docker.io/library/debian:latest
Deleted: 827e5611389abf13dad1057e92f163b771febc0bcdb19fa2d634a7eb0641e0cc

운영 시 고려사항 및 팁

중요: 루트리스(rootless) 모드와 네트워크 포트 바인딩은 Docker와 동작 차이가 있습니다. 루트리스 환경에서는 포트 < 1024 바인딩이나 파일 권한 관련 추가 구성이 필요할 수 있습니다.

  • 시스템 서비스 통합: Podman은 시스템d와 잘 통합되며 사용자 단위 서비스(unit)로 컨테이너를 관리할 수 있습니다.
  • 보안: Podman은 루트리스 실행을 기본으로 지원하므로 호스트 절대권한을 줄여 보안 이점을 제공할 수 있습니다.
  • 레지스트리: 사설 레지스트리 사용 시 인증 및 TLS 설정을 /etc/containers/registries.conf와 인증파일로 구성합니다.

Podman이 적합하지 않을 때 (반례)

  • 기존에 Docker 데몬에 크게 의존한 툴체인(CI 도구, 일부 GUI 툴)은 추가 설정 없이 동작하지 않을 수 있습니다.
  • 특정 Docker 전용 플러그인(데몬 기반 확장 기능) 사용이 필요한 경우 Podman으로 바로 대체하기 어렵습니다.

대안 및 보완 도구

  • Docker: 광범위한 생태계와 도구 통합이 필요하면 Docker가 여전히 유리합니다.
  • Buildah: 이미지 빌드에 특화된 도구로 Dockerfile 없이도 이미지를 만들 수 있습니다. Podman과 함께 사용하면 유연합니다.
  • Skopeo: 원격 이미지 레지스트리 검사/전송에 유용합니다.

운영자별 체크리스트

  • 시스템 관리자

    • Podman 패키지 설치 및 버전 관리
    • /etc/containers/registries.conf 검토
    • systemd 통합 유닛 작성 및 로그 정책 설정
  • 개발자

    • Dockerfile 호환성 검증
    • 루트리스 환경에서 권한·포트 동작 확인
    • CI 파이프라인에서 Podman 명령으로 빌드/테스트 적용
  • DevOps/CI 엔지니어

    • 이미지 서명 및 보안 스캐닝 통합
    • 캐시 전략 및 레지스트리 접근 제어
    • 롤백/디플로이 자동화 테스트

명령어 치트시트

목적명령어
설치apt-get install podman -y
버전 확인podman –version
이미지 가져오기podman pull <이미지>
이미지 목록podman images
컨테이너 실행podman run -dit <이미지>
실행중 목록podman ps
전체 목록podman ps -a
로그 확인podman logs <컨테이너>
셸 접속podman exec -it <컨테이너> /bin/bash
중지podman stop <컨테이너>
삭제podman rm <컨테이너>
이미지 삭제podman rmi <이미지 ID>

결정 보조 흐름도

flowchart TD
  A[컨테이너 런타임 선택] --> B{데몬 필요?}
  B -- 예 --> C[Docker 선택]
  B -- 아니오 --> D[Podman 선택]
  D --> E{루트리스 필요?}
  E -- 예 --> F[Podman 루트리스 구성]
  E -- 아니오 --> G[Podman 루트권한 실행]

(위 플로우는 기본 가이드이며, 실제 결정은 보안·운영 요구사항에 따라 달라집니다.)

추가 자료

  • 공식 가이드: Getting Started with Podman: Manage Images, Containers and Volumes (원문 문서 참조)
  • 관련 도구: Buildah, Skopeo

결론

이 문서에서는 Debian 11에 Podman을 설치하고 기본 명령으로 이미지를 가져오고 컨테이너를 실행·관리하는 방법을 설명했습니다. Podman은 데몬이 필요 없고 루트리스 모드를 지원하므로 보안과 경량화를 원하는 환경에서 유리합니다. 다만 기존 Docker 중심 워크플로를 완전히 대체하려면 일부 설정과 검증이 필요합니다.

요약: Podman 설치는 간단하며, 기본 명령으로 컨테이너를 손쉽게 관리할 수 있습니다. 운영 환경에 맞춰 레지스트리, 권한, systemd 통합을 구성하세요.

공유하기: X/Twitter Facebook LinkedIn Telegram
저자
편집

유사한 자료

Debian 11에 Podman 설치 및 사용하기
컨테이너

Debian 11에 Podman 설치 및 사용하기

Apt-Pinning 간단 소개 — Debian 패키지 우선순위 설정
시스템 관리

Apt-Pinning 간단 소개 — Debian 패키지 우선순위 설정

OptiScaler로 FSR 4 주입: 설치·설정·문제해결 가이드
그래픽 가이드

OptiScaler로 FSR 4 주입: 설치·설정·문제해결 가이드

Debian Etch에 Dansguardian+Squid(NTLM) 구성
네트워크

Debian Etch에 Dansguardian+Squid(NTLM) 구성

안드로이드 SD카드 설치 오류(Error -18) 완전 해결
안드로이드 오류

안드로이드 SD카드 설치 오류(Error -18) 완전 해결

KNetAttach로 원격 네트워크 폴더 연결하기
네트워킹

KNetAttach로 원격 네트워크 폴더 연결하기