podman — 컨테이너 런타임
Linux / 서비스 및 프로세스 관리 / podman.html
💬 "podman 명령어"
podman는 컨테이너 런타임 Docker 명령어 호환 컨테이너 런타임입니다. 루트리스 실행이 기본이며 데몬이 없습니다.
Docker CLI와 명령어 호환입니다 (docker→podman 별칭 가능). 루트리스 모드가 기본이며 데몬 없이 동작합니다.
- 개념: Docker CLI와 명령어 호환입니다 (docker→podman 별칭 가능).
- 주요 기능: 루트리스 모드가 기본이며 데몬 없이 동작합니다.
- 장점: Pod 단위 멀티 컨테이너 관리를 지원합니다.
- 활용: systemd 서비스로 컨테이너 관리가 가능합니다.
설치 및 다운로드
podman는 패키지 매니저 또는 공식 스크립트로 설치합니다.
| 환경 | 명령 |
|---|---|
| Ubuntu 24.04+ | sudo apt install podman |
| RHEL / Fedora | sudo dnf install podman |
| Arch | sudo pacman -S podman |
| macOS (brew) | brew install podman |
| 확인 | podman --version |
설치 확인은 podman --version으로 합니다.
자주 쓰는 옵션
| 옵션 | 설명 |
|---|---|
podman run <img> | 컨테이너를 실행합니다 (docker run 동일) |
podman ps | 실행 중 컨테이너 목록 |
podman images | 로컬 이미지 목록 |
podman pod create | Pod를 생성합니다 |
podman system migrate | 루트리스↔루트 전환 시 마이그레이션 |
필수 명령어 조합 3가지
podman run -d -p 8080:80 nginx— 웹 서버 컨테이너 실행alias docker=podman— Docker 호환 별칭podman generate systemd --new --name myapp— systemd 서비스 생성
💬 "실제 서버에서 podman를 사용하는 예시를 보여줘"
실제 운영 중인 서버에서 자주 만나는 상황을 순서대로 정리했습니다.
1단계 · 설치 확인
설치 여부를 확인합니다.
podman --version || sudo apt install -y podman
2단계 · 컨테이너 실행
nginx를 백그라운드로 실행합니다.
podman run -d -d -p 8080:80 --name web nginx
3단계 · 상태 확인
실행 중 컨테이너를 확인합니다.
podman ps
실제 실행 화면
podman으로 nginx 컨테이너를 실행한 결과입니다.

실제 운영 중인 서버
실무에서는 이렇게 씁니다
1. 컨테이너 실행
상황 — nginx 컨테이너를 실행합니다.
podman run -d -p 8080:80 --name web nginx:latest
결과 — 8080 포트로 nginx가 실행됩니다.
포인트 — Docker run과 동일한 문법입니다.
2. systemd 등록
상황 — 컨테이너를 systemd로 관리합니다.
podman generate systemd --new --name web > web.service
systemctl --user enable --now web.service
결과 — 재부팅 후에도 컨테이너가 자동 시작됩니다.
포인트 — 컨테이너 수명주기를 OS 수준으로 통합합니다.
실제 실행 화면
podman generate systemd으로 서비스를 생성한 결과입니다.

실제 운영 중인 서버
주의할 점
- 루트리스 podman은 포트 1024 미만 바인딩에 sysctl net.ipv4.ip_unprivileged_port_start 설정이 필요할 수 있습니다.
- Docker Compose와 완전 호환은 아닙니다. 일부 서비스가 다르게 동작할 수 있습니다.
- 루트에서 만든 컨테이너와 루트리스 컨테이너의 이미지 저장소가 다릅니다. 전환 시 podman system migrate 필요합니다.