본문으로 바로가기

[Container] Podman 설치 및 사용법

category Cloud/Kubernetes (k8s) 2021. 8. 24. 18:49
반응형

podman 은 Pod Manager tool 의 약자로 OCI 표준 container와 런타임을 개발, 관리, 실행할 수 있게 해주는 container engine 입니다.

 

docker와의 차이점은 크게 3가지로 볼 수 있습니다.

 

1. docker와 podman의 차이점

A. daemon-less

docker는 docker daemon을 통해 모든 작업이 이루어지고, 사용자는 docker 명령어로 데몬을 제어하는방식입니다.

하지만 docker daemon이 죽거나 재시작하면 컨테이너가 정지됩니다.

그래서 Podman은 데몬에서 관리하지 않고, podman이 직접 각 컨테이너들을 fork/exec 하는 방식으로 별도로 구동하여 별도의 데몬 없이 각 컨테이너들을 안정적으로 실행할 수 있습니다.

Docker vs Podman 동작방식

 

 

B. root 권한 불필요

docker 는 docker daemon 에 모든 권한이 집중되다 보니 아무나 docker client 로 docker daemon 을 제어하지 못하도록 root 사용자만 docker client 를 사용하도록 했습니다.
하지만 이 방식은 시스템 운영자가 컨테이너 운영자가 되어야 하므로 업무 분리가 제대로 안 되게 만들며 과다한 root 권한이 필요하므로 오히려 보안에 더 취약합니다.

 

podman 은 fork/exec 으로 개별 컨테이너를 실행할 수 있으므로 1024 이하의 well known 포트를 사용하는등의 root 권한으로 실행해야 하는 작업이 아니라면 일반 사용자로 실행할 수 있으므로 담당자별 권한을 분리할 수 있으므로 시스템 운영자와 서비스/컨테이너 운영자로 전문화할 수 있으며 보안 측면에서도 더 뛰어납니다.

 

 

C. kubernetes 지원

podman 은 대부분이 명령어가 docker 와 호환되지만 docker 가 제공하지 않는 기능도 제공합니다.
그 중에 하나는 Kubernetes 나 OpenShift 같은 container platform 으로 쉽게 이관할 수 있습니다.

 

 

2. podman 설치 및 사용법

2.1 podman 설치

yum 명령어를 통해 podman을 설치합니다.

[root@hk-test ~]#yum install -y podman

 

 

2.2 httpd 컨테이너 실행 및 상태 조회

httpd 컨테이너를 실행하고 podman ps 명령을 통해 컨테이너 상태를 조회합니다.

[root@hk-test ~]#podman run -d -ti --name httpd -p 80:80 httpd

[root@hk-test ~]#podman ps -a
CONTAINER ID  IMAGE                           COMMAND           CREATED        STATUS            PORTS               NAMES
8b38f31b471b  docker.io/library/httpd:latest  httpd-foreground  3 seconds ago  Up 2 seconds ago  0.0.0.0:80->80/tcp  httpd

 

 

2.3 httpd 접속

웹 브라우저를 통해 httpd로 접속하여 정상적으로 접속되는지 확인합니다.

 

 

# podman 소개 출처

https://www.lesstif.com/container/podman-98926748.html

728x90