Podman 관리 · 6 min read · Feb 11, 2026
Podman 시작하기: 이미지, 컨테이너 및 볼륨 관리

Podman은 Docker와 유사한 기능을 제공하는 컨테이너 런타임입니다. libpod 라이브러리의 일부로, 포드, 컨테이너, 컨테이너 이미지 및 컨테이너 볼륨을 관리하는 데 사용할 수 있습니다. Podman은 클라이언트-서버 아키텍처를 사용하는 Docker와 매우 다르며, 실행을 위해 docker 데몬이 필요하지 않으며 루트 권한 없이도 원활하게 실행할 수 있습니다.
이 튜토리얼에서는 컨테이너, 이미지 및 볼륨 관리를 위한 Podman의 기본 사용법과 컨테이너 이미지를 만드는 방법을 보여줍니다. 이 가이드를 완료하려면 podman이 설치되어 있어야 합니다. 다양한 운영 체제에 대한 가이드는 다음과 같습니다:
- Ubuntu 22.04에 Podman 설치하는 방법
- Rocky Linux에서 Podman 시작하기 (Docker 대안)
- Ubuntu 20.04에서 Podman 설치 및 사용하기 (Docker 대안)
- Debian 11에서 Docker 대안으로 Podman 설치하기
전제 조건
- Podman이 설치된 Ubuntu 서버
- Docker에 대한 기본 지식이 있으면 더 쉽게 진행할 수 있습니다.
1. 기본 Podman 명령어
Ubuntu 시스템에 Podman을 설치한 후, Podman 자체를 확인하는 방법을 알아야 합니다. 시스템에 이미 설치된 버전, Podman 시스템 환경 및 기본 도움말 사용법을 확인해야 합니다.
기계에 설치된 Podman 버전을 얻으려면 다음 명령어를 사용하십시오.
podman version이 가이드를 위해 Podman 버전 > 1.0.1이면 괜찮습니다.
이제 Podman 환경 설정을 확인하십시오.
podman info그러면 Podman 설치의 시스템 환경이 표시됩니다. 호스트 패키지 정보, 레지스트리 및 저장소를 포함합니다.

다음으로, 사용 가능한 모든 Podman 명령 옵션을 표시하려면 다음 명령어를 실행하십시오.
podman --help특정 명령에 대한 도움말을 표시하려면 아래와 같이 사용할 수 있습니다.
podman pod help
2. Podman을 사용한 컨테이너 이미지 관리
이제 Podman을 사용한 컨테이너 이미지 관리로 넘어갑니다. 이미지 검색, 이미지 다운로드, 로컬 시스템에서 사용 가능한 이미지 표시 및 이미지 제거와 관련된 몇 가지 기본 명령어를 알아야 합니다.
이미지를 검색하려면 아래 명령어를 실행하십시오.
podman search nginx이 명령어는 ‘/etc/containers/repositories.conf’ 구성 파일에 이미 정의된 모든 사용 가능한 리포지토리에서 ‘nginx’라는 단어가 포함된 이미지를 검색합니다.

이제 아래의 ‘podman pull’ 명령어를 사용하여 이미지를 다운로드하십시오.
podman pull docker.io/library/nginx
podman pull docker.io/library/alpine완료되면 서버 머신에서 사용 가능한 모든 이미지를 확인하십시오.
podman images이제 시스템에서 nginx 및 alpine 이미지를 얻을 수 있습니다.

alpine 이미지를 제거하려면 아래와 같이 ‘rmi’ 옵션을 사용할 수 있습니다.
podman rmi alpine
결과적으로 시스템에는 nginx 컨테이너 이미지만 남게 됩니다.
3. 컨테이너 관리
이 단계에서는 컨테이너 이미지 관리에 대해 배웠습니다. 다음 단계에서는 Podman을 사용하여 컨테이너를 생성하고 관리하는 방법을 배웁니다.
새로운 컨테이너를 생성하려면 아래와 같이 ‘podman run’ 명령어를 사용할 수 있습니다.
podman run -d -p 8000:80 --name hakase-nginx docker.io/library/nginx이 명령어는 nginx 이미지를 기반으로 ‘hakase-nginx’라는 이름의 새로운 컨테이너를 생성하고 호스트 머신의 포트 8000을 노출합니다.
세부 명령어 옵션:
-d - 컨테이너를 백그라운드에서 실행하고 결과로 컨테이너 ID만 인쇄합니다.
-p 8000:80 - 컨테이너와 호스트 시스템의 포트 매핑. 호스트 머신의 포트 8000과 컨테이너의 포트 80.
–name hakase-nginx - ‘hakase-nginx’로 컨테이너 이름을 지정합니다.
이제 시스템에서 실행 중인 모든 컨테이너를 표시하십시오.
podman ps그러면 ‘hakase-nginx’라는 컨테이너가 실행 중임을 보여줍니다.
모든 사용 가능한 컨테이너를 확인하려면 ‘-a’ 옵션을 사용할 수 있습니다.
podman ps -a이제 다양한 상태의 모든 사용 가능한 컨테이너를 얻을 수 있습니다.
호스트 머신에서 모든 실행 중인 컨테이너를 얻은 후, 컨테이너 내부의 모든 프로세스를 확인하고, 실행 중인 컨테이너에 연결하고, 컨테이너를 중지하고 제거하는 방법을 보여줍니다.
실행 중인 컨테이너 내부의 프로세스를 확인하려면 다음 명령어를 사용하십시오.
podman top hakase-nginx이제 실행 중인 컨테이너에 연결하고 접근하려면 아래와 같이 ‘exec’ 명령어를 사용할 수 있습니다.
podman exec -it hakase-nginx /bin/bash‘hakase-nginx’ 컨테이너 내부에서 nginx 버전을 확인하십시오.
nginx -V아래와 같은 결과를 얻을 수 있습니다.

이제 ‘exit’를 입력하여 컨테이너에서 로그아웃하십시오.
다음으로 ‘hakase-nginx’ 컨테이너를 중지하십시오.
podman stop hakase-nginx그런 다음 컨테이너를 제거하십시오.
podman rm hakase-nginx
실행 중인 컨테이너를 강제로 중지하고 제거하려면 ‘-f’ 옵션을 사용할 수 있습니다.
podman rm hakase-nginx -f4. 볼륨 관리
Podman은 0.12 버전부터 로컬 전용 볼륨을 생성하고 관리하는 기능을 지원합니다. 따라서 이전 버전을 사용하고 있다면 ‘podman volume’ 명령어를 사용할 수 없습니다.
이제 다음 명령어를 사용하여 새로운 로컬 볼륨을 생성하십시오.
podman volume create hakase-volume그 후, 시스템에서 사용 가능한 모든 볼륨을 표시하십시오.
podman volume ls그러면 목록에서 ‘hakase-volume’을 얻을 수 있습니다.
‘hakase-volume’ 볼륨에 대한 세부 정보를 확인하려면 아래와 같이 ‘inspect’ 옵션을 사용할 수 있습니다.
podman volume inspect hakase-volume그리고 볼륨의 ‘mountPoint’가 로컬 디렉토리 ‘/var/lib/containers/storage/hakase-volume/_data’로 설정되어 있음을 확인할 수 있습니다.

해당 디렉토리로 이동하여 새로운 index.html 파일을 생성하십시오.
cd /var/lib/containers/storage/hakase-volume/_data
echo "This is custom index and volume - Hello Podman
" > index.html이제 새로운 컨테이너를 생성하고 ‘hakase-volume’을 컨테이너에 마운트하십시오.
podman run -d -p 8000:80 -v hakase-volume:/usr/share/nginx/html --name hakase-nginx docker.io/library/nginx컨테이너가 생성되면 다음 명령어를 사용하여 컨테이너에서 사용 가능한 볼륨을 확인하십시오.
podman inspect -f '{{ json .Mounts }}' hakase-nginx | jq결과의 하단에서 컨테이너에서 ‘hakase-volume’을 확인할 수 있습니다.

다음으로, 컨테이너의 IP 주소를 확인하십시오.
podman inspect -f '{{ .NetworkSettings.IPAddress }}' hakase-nginxhttpie를 사용하여 HTTP 포트에서 컨테이너에 접근하십시오.
http http://10.88.0.4/그러면 ‘hakase-volume’에 생성된 사용자 정의 index.html 파일을 얻을 수 있습니다.

이제 볼륨을 제거하려면 ‘rm’ 옵션을 사용할 수 있습니다.
podman volume rm hakase-volume그리고 ‘hakase-volume’이 제거됩니다.
5. 커밋으로 사용자 정의 이미지 생성
이제 Podman을 사용하여 사용자 정의 컨테이너 이미지를 생성할 것입니다. 기본적으로 Podman은 변경된 컨테이너를 기반으로 사용자 정의 이미지를 생성하거나 ‘Dockerfile’을 사용하여 새로운 사용자 정의 이미지를 생성할 수 있습니다.
이 섹션에서는 ‘podman commit’ 명령어를 통해 변경된 컨테이너를 기반으로 새로운 사용자 정의 이미지를 생성할 것입니다.
마스터 이미지 ‘ubuntu’를 다운로드/풀합니다.
podman pull docker.io/library/ubuntu이제 ubuntu 이미지를 기반으로 컨테이너를 실행합니다. 그리고 컨테이너 내부에서 ‘bash’ 명령어를 실행하여 리포지토리를 업데이트하고 nginx 패키지를 설치합니다.
podman run --name container-temp ubuntu bash -c "apt update && apt install -y nginx"컨테이너 내부에서 nginx 설치가 완료될 때까지 기다립니다.

완료되면 다음 명령어를 사용하여 ‘container-temp’를 기반으로 새로운 사용자 정의 이미지를 생성합니다.
podman commit container-temp my-nginx다음으로 시스템에서 사용 가능한 이미지를 확인하십시오.
podman images그리고 목록에서 ‘my-nginx’라는 새로운 이미지를 얻을 수 있습니다.

‘my-nginx’ 이미지를 기반으로 컨테이너를 실행하려면 다음 명령어를 실행하십시오.
podman run -dt -p 8001:80 --name nginx01 my-nginx /usr/sbin/nginx -g 'daemon off;'이제 실행 중인 컨테이너를 확인하고 IP 주소를 확인하십시오.
podman ps
podman inspect --format '{{ .NetworkSettings.IPAddress }}' nginx01그러면 ‘nginx01’ 컨테이너가 실행 중임을 보여줍니다. 그 후, ‘nginx01’ 컨테이너의 HTTP 포트에 접근하십시오.
http -p h 10.88.0.19결과적으로 아래와 같은 HTTP 헤더 응답을 얻을 수 있습니다.

6. Dockerfile로 사용자 정의 이미지 생성
이제 Dockerfile을 사용하여 새로운 사용자 정의 컨테이너 이미지를 생성할 것입니다.
새로운 프로젝트 디렉토리를 만들고 그 안에 새로운 ‘Dockerfile’을 생성하십시오.
mkdir project; cd project/
vim Dockerfile다음 구성을 붙여넣습니다.
FROM ubuntu
# Nginx 설치
RUN \
apt-get update && \
apt-get install -y nginx && \
rm -rf /var/lib/apt/lists/* && \
echo "\ndaemon off;" >> /etc/nginx/nginx.conf && \
chown -R www-data:www-data /var/lib/nginx
# 마운트 가능한 디렉토리 정의.
VOLUME ["/etc/nginx/sites-enabled", "/etc/nginx/certs", "/etc/nginx/conf.d", "/var/log/nginx", "/var/www/html"]
# 작업 디렉토리 정의.
WORKDIR /etc/nginx
# 기본 명령 정의.
CMD ["nginx"]
# 포트 노출.
EXPOSE 80
EXPOSE 443저장하고 닫습니다.
이제 아래의 podman 명령어를 실행하여 Dockerfile을 사용하여 새로운 사용자 정의 이미지를 빌드하십시오.
podman build -t hakase-image .
완료되면 머신에서 새로운 이미지를 확인하십시오.
podman images그리고 ‘hakase-image’를 얻을 수 있습니다.

다음으로, 아래 명령어를 실행하여 ‘hakase-image’를 기반으로 새로운 컨테이너를 생성하십시오.
podman run -d -p 8002:80 --name nginx02 hakase-image그 후, ‘nginx02’ 컨테이너와 그 IP 주소를 확인하십시오.
podman ps
podman inspect --format '{{ .NetworkSettings.IPAddress }}' nginx02‘nginx02’ 컨테이너가 실행 중인지 확인하십시오.
이제 httpie 도구를 사용하여 컨테이너를 확인하십시오.
http 10.88.0.21그러면 기본 Nginx 페이지와 그 HTTP 헤더가 표시됩니다.

마지막으로, 이제 Podman을 사용하여 컨테이너, 이미지 및 볼륨을 관리할 수 있으며, Dockerfile을 사용하여 애플리케이션을 위한 새로운 사용자 정의 이미지를 생성할 수 있습니다.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.