podman
🚀 Rocky Linux 9에서 Docker 대신 Podman을 써야 하는 이유
Rocky Linux 9부터는 기본 리포지토리에 Docker가 포함되지 않는다.
이는 Red Hat 계열(RHEL, CentOS, Rocky 등) 배포판의 정책 변화로, Red Hat이 Docker 대신 Podman을 컨테이너 런타임으로 채택했기 때문이다.
그렇다면 왜 Docker가 빠졌고, 우리는 왜 Podman을 써야 하는 걸까?
1️⃣ Docker가 빠진 이유
- Red Hat의 전략 변경:
Docker는 컨테이너 런타임, CLI, 데몬, 빌더 등을 포함하는 단일 블록 구조이다. Red Hat은 이를 **모듈화된 표준 구조 (OCI: Open Container Initiative)**로 교체하려 하였고, 이에 Docker 대신 Podman, Buildah, Skopeo 조합을 채택하였다. - 보안 및 경량성:
Docker는 항상 데몬(dockerd)이 필요하다. 이 데몬은 루트 권한으로 실행되며 보안 취약점이 될 수 있다. 반면 Podman은 루트리스(rootless) 실행을 지원하여 보안성이 더 높다. - 라이선스 문제 회피:
Docker는 2021년부터 Docker Desktop에 상업용 라이선스를 요구하기 시작하였다. 이로 인해 Docker를 대체하려는 기업 수요가 증가하였다.
2️⃣ Docker와 Podman의 주요 차이점
항목 Docker Podman
데몬 필요 여부 | 필요 (dockerd) | 불필요 (daemonless) |
루트리스 실행 | 제한적 | 완전 지원 |
CLI 호환성 | 자체 명령어 | Docker CLI와 거의 동일 (alias docker=podman) |
Compose 지원 | docker-compose 사용 | podman-compose 또는 podman play kube |
시스템 통합 | 별도 구성 필요 | systemd 서비스 통합 용이 |
컨테이너 포크 지원 | 불가 | 가능 (fork/exec 구조) |
이미지 저장소 | Docker Hub 중심 | 다양한 레지스트리 지원 (Docker Hub 포함) |
3️⃣ Podman의 장점
✅ 1. 데몬리스 구조
Podman은 데몬을 실행하지 않으며, 모든 명령이 CLI를 통해 직접 실행된다. 이는 시스템 자원을 적게 사용하며, 보안 측면에서도 유리하다.
✅ 2. 루트리스 컨테이너
일반 사용자 권한으로 컨테이너를 실행할 수 있어 다중 사용자 환경에서 안전하게 사용할 수 있다.
✅ 3. Docker CLI와 높은 호환성
docker 명령어를 podman으로 대체해도 대부분의 명령이 동작한다. alias docker=podman만 입력하면 거의 동일한 사용 경험을 제공한다.
✅ 4. systemd와 통합 용이
Podman은 컨테이너를 systemd 서비스로 자동 변환할 수 있는 기능을 제공한다. 운영체제 서비스처럼 컨테이너를 관리할 수 있다.
podman generate systemd --name my_container --files --restart-policy=always
✅ 5. Kube 지원
podman play kube를 이용해 Kubernetes YAML 파일을 그대로 실행할 수 있다. 테스트나 로컬 개발 환경에서 유용하다.
❌ Podman의 단점
- Compose 지원이 미흡
docker-compose는 기본적으로 사용할 수 없으며, 별도로 podman-compose를 설치하거나 YAML을 Kube 형식으로 변환해야 한다. - 기존 Docker 기반 도구와의 호환성 부족
일부 DevOps 툴이나 CI/CD 환경에서는 여전히 Docker 엔진을 요구하는 경우가 있다. - 학습 곡선
루트리스 환경이나 systemd 통합 등을 처음 접할 경우 다소 학습이 필요하다.
✅ 결론
Rocky Linux 9부터 Docker가 기본에서 제외된 것은 보안성과 표준화, 경량성을 위한 의도된 변화이다. Podman은 이러한 요구를 충족하면서도 Docker와 높은 호환성을 유지하는 대안이다.
Docker에 익숙한 사용자도 큰 어려움 없이 전환할 수 있으며, 특히 루트리스 실행, 데몬리스 구조, systemd 통합이 필요한 환경이라면 Podman은 훌륭한 선택이 된다.
운영환경에서 안전하고 일관된 컨테이너 관리를 원한다면, Podman으로의 전환은 더 이상 선택이 아닌 필수이다.