Rocky Linux 에서 Podman으로 Docker 대체하기
rocky linux 10 podman docker, RHEL 10 기반 Rocky Linux 10에서는 더 이상 Docker를 ‘기본값’으로 전제하지 않습니다.
대신 Red Hat이 직접 관리하는 Podman이 컨테이너 런타임의 중심이 되었고, Rocky 10 역시 이 흐름을 그대로 따라갑니다.
주요 특징
- 데몬리스 아키텍처:
- 백그라운드 데몬 프로세스 없이 컨테이너를 실행하므로, 기존의 Docker 방식보다 보안상 유리합니다.
-
루트리스(rootless) 컨테이너:관리자 권한 없이 컨테이너를 실행할 수 있어, 보안 리스크를 줄여줍니다.
-
Docker CLI 호환:기존의
docker명령어를 거의 그대로podman으로 사용할 수 있습니다.
-
파드(Pod) 지원:여러 컨테이너를 파드로 묶어 함께 실행하고 관리할 수 있습니다.
-
컨테이너 표준을 준수하여 다른 OCI 호환 컨테이너와 호환됩니다.
-
다양한 플랫폼 지원:Linux는 물론, 가상 머신을 통해 Mac 및 Windows에서도 사용할 수 있습니다.
장점
-
보안 강화:데몬이 없기 때문에 단일 실패 지점(single point of failure)이 줄어들고, 루트리스 컨테이너로 인해 권한 상승 공격의 위험이 감소합니다.
-
쉬운 사용성:Docker와 명령어 호환성이 높아 기존 Docker 사용자가 쉽게 전환할 수 있습니다.
-
유연성:파드를 지원하여 컨테이너 오케스트레이션의 일부 기능을 로컬 환경에서 미리 테스트해 볼 수 있습니다.
rocky linux 10 podman docker 조합으로 실제 환경에 컨테이너 런타임을 설치해 보겠습니다.
sudo dnf update -y
sudo dnf install -y podman
# 설치 확인
podman –version
podman info
기존에 docker 명령을 많이 쓰고 있다면, podman-docker 패키지로 docker 명령어를 그대로 사용할 수 있습니다.
dnf install -y podman-docker
# 이제 docker 명령을 쳐도 Podman이 동작
docker –verison
– 컨테이너 레지스트리 설정 (docker.io 포함)
vi /etc/containers/registries.conf
- 기존에 있던 설정 부분은 주석처리 후 해당 내용을 넣어줍니다.
[registries.search]
registries = [“registry.access.redhat.com”, “registry.redhat.io”, “docker.io”, “quay.io”]
기존에 쓰던 Docker Hub 이미지(docker.io/library/nginx)도 그냥 podman pull nginx로 잘 넘어옵니다.
– Podman 기본 사용법 (Docker와 1:1 대응)
podman의 기본적인 명령어는 다음과 같으며, 도커 명령어를 사용할 수 있습니다.
- # 이미지 받기
podman pull nginx:lastest - # 컨테이너 실행 (docker run -d –name web -p 80:80 nginx)
podman run -d –name web -p 80:80 nginx:lastest - # 실행 중 컨테이너 목록
podman ps - # 정지 / 삭제
podman stop web
podman rm web
– 컨테이너 안으로 들어가기
– 볼륨 마운트, 환경변수
Rootless Podman: 일반 사용자로 컨테이너 돌리기
-
root로 실행: 기존 Docker처럼
sudo podman run ... -
rootless: 운영자 계정(예:
devops)으로 직접podman run ...-
사용자 네임스페이스,
fuse-overlayfs등을 활용해 root 권한 없이 컨테이너를 운영하여 보안을 강화할 수 있습니다.
-
fuse-overlayfs설치Podman 문서에서는 rootless 환경에서 OverlayFS 대신
fuse-overlayfs를 자동 사용하도록 권장합니다. -
rootless로 로그인한 뒤:
rootless 모드가 활성화되어 있으면 이후부터는
서비스용으로는 여전히 root Podman을 쓰고, 개발/테스트나 퍼스널 컨테이너는 rootless로 분리하는 운영 패턴으로 운영할 수 있습니다.
-
podman generate systemd는 컨테이너/Pod에 대한 systemd unit 파일을 생성해주는 명령입니다.
-
-
로그와 리소스 모니터링
-
Podman 컨테이너는 systemd에서 관리하면 journald에 로그가 모입니다.
-
podman stats로 컨테이너 단위 리소스 사용량을 확인 할 수 있습니다.
-
-
이미지/볼륨 정리
-
Docker와 마찬가지로, 주기적으로 unused 이미지/컨테이너/볼륨 정리 필요합니다. :
-




