현재 오픈소스 컨테이너 엔진은 포드만으로 전환 중이다. docker-ee, docker-ce는 여전히 사용 가능하나, 오픈소스 표준 엔진 및 런타임을 제공하는 포드만을 권장한다. 포드만이 제공하는 표준형식은 다음과 같다.
포드만을 사용하는 이유는 다음과 같다.
systemd의 service 형태로 컨테이너 구현을 원하는 경우기존 도커 런타임은 위와 같은 기능을 제공하지 않는다.
빌더(BUILDAH) : 오픈소스 표준 이미지 빌드 도구
기존에는 docker build를 사용하여 구성 및 구현하였지만, 이미지 빌드 용도로 사용하기에는 너무 무겁기 때문에, 이미지 빌드 도구로 등장하였다. 기존 Dockerfile과 Containerfile을 둘 다 지원한다.
CI/CD에서 이미지 빌드 구성 및 생성 용도로 많이 사용하는 단일 도구이다.
도커에서 이미지 검색 부분을 분리하여 독립적인 도구로 만든 명령어이다. 이미지 검색 관련 URI는 oci, docker 프로토콜을 지원한다. 현재는 docker 프로토콜만 원격 HTTP/V2를 제공한다.
dnf search podman
dnf install podman-docker podman-compose -y
# 검색한 패키지 중 필요한 패키지만 골라서 설치
# docker : Docker CLI와 podman을 호환되게 사용하도록 해주는 패키지
# compose : Docker Compose와 유사한 방식으로 podman을 사용하게 해주는 패키지
docker ps # 현재 실행 중인 Docker 컨테이너 나열
podman ps # 현재 실행 중인 Podman 컨테이너 나열
podman containert ls # 현재 실행 중인 Podman 컨테이너 나열 (위와 동일)

podman run -d --name test-nginx --rm nginx
-d : detached mode, 컨테이너를 백그라운드에서 실행 (터미널 차지 x)--name : container name 지정, 위 명령어에서는 test-nginx--rm : delete when stop it, 실행을 멈추면 컨테이너를 삭제한다. 임시 컨테이너를 실행할 때 유용하다.nginx : name of container image, 컨테이너 이미지의 이름이다. nginx 이미지를기반으로 새 컨테이너 생성한다.

-it : 상호작용 모드로 터미널 할당-i : interactive(상호작용 모드), -t : tty(터미널) 의미touch : 빈 파일 생성 명령어cat : 파일 내용 출력 명령어 > 현재 파일은 비어 있기 때문에 아무 출력도 없다.systemctl is-active podman.service # inactive
systemctl is-active docker.service # active
docker.service가 실행 중인 중앙 데몬을 사용하여 컨테이너를 관리한다.

이 다이어그램은 Podman을 사용하여 컨테이너와 Pod를 생성, 관리 및 모니터링하는 기본적인 작업 흐름을 시각적으로 나타내고 있다.

위 다이어그램은 각각 다른 구성 및 포트 매핑을 사용하여 Podman을 통해 두 개의 Nginx 컨테이너를 배포하는 것을 보여준다. 또한, 호스트 디렉토리를 컨테이너 디렉토리에 매핑하기 위해 볼륨 바인딩을 사용하는 것을 알 수 있다. Pod를 사용하여 컨테이너를 그룹화하고 관리하는 방법을 강조하며, 내부 루프백 네트워크 연결을 제공한다. 사용자는 포트 8080/TCP를 통해 서비스에 접근할 수 있다.