Podman(POD MANager)은 컨테이너와 이미지, 해당 컨테이너에 마운트된 볼륨, 컨테이너 그룹으로 만들어진 포드를 관리하기 위한 도구입니다. Podman은 Linux에서 컨테이너를 실행하지만 Podman 관리 가상 머신을 사용하여 Mac 및 Windows 시스템에서도 사용할 수 있습니다. Podman은 이 저장소에도 포함되어 있는 컨테이너 수명주기 관리용 라이브러리인 libpod를 기반으로 합니다. libpod 라이브러리는 컨테이너, 포드, 컨테이너 이미지 및 볼륨을 관리하기 위한 API를 제공합니다.
Podman은 1년에 4번, 2월, 5월, 8월, 11월 두 번째 주에 새로운 메이저 또는 마이너 릴리스를 출시합니다. 패치 릴리스는 더 자주 발생하며 사용자에게 버그 수정을 제공하기 위해 언제든지 발생할 수 있습니다. 모든 릴리스는 PGP로 서명되었습니다. 릴리스를 승인한 팀 구성원의 공개 키는 여기에 있습니다.
지속적인 통합:
GoDoc:
다운로드
높은 수준에서 Podman 및 libpod의 범위는 다음과 같습니다.
OCI 및 Docker 이미지를 포함한 여러 컨테이너 이미지 형식을 지원합니다.
다양한 소스에서 가져오기(신뢰 및 확인 포함), 생성(Containerfile 또는 Dockerfile을 통해 구축 또는 컨테이너에서 커밋), 레지스트리 및 기타 스토리지 백엔드로 푸시를 포함하여 해당 이미지를 완벽하게 관리합니다.
생성(이미지 및 확장된 루트 파일 시스템 모두에서), 실행, 검사점 지정 및 복원(CRIU를 통해), 제거를 포함하여 컨테이너 수명주기를 완벽하게 관리합니다.
Netavark를 사용하여 컨테이너 네트워킹을 완벽하게 관리합니다.
리소스를 공유하고 함께 관리되는 컨테이너 그룹인 포드를 지원합니다.
루트 또는 기타 승격된 권한 없이 컨테이너 및 포드 실행을 지원합니다.
컨테이너 및 포드의 리소스 격리.
로컬 및 원격 시스템에서 컨테이너를 실행할 수 있는 Docker 호환 CLI 인터페이스를 지원합니다.
보안을 강화하고 유휴 상태에서 리소스 활용도를 낮추기 위해 관리자 데몬이 없습니다.
Docker 호환 인터페이스와 고급 Podman 기능을 노출하는 향상된 인터페이스를 모두 제공하는 REST API를 지원합니다.
podman machine
에서 실행되는 가상 머신을 통해 Windows 및 Mac에서 실행을 지원합니다.
Podman Desktop 및 기타 개발자 사용 사례를 더 잘 지원하기 위해 podman machine
추가로 개선했습니다.
컨테이너 로깅을 향상시키는 conmon-rs를 지원합니다.
BuildKit API를 지원합니다.
성능 및 안정성이 향상되었습니다.
Podman 바이너리의 크기가 줄어듭니다.
프로젝트에서 보안 문제를 발견했다고 생각되면 GitHub 문제 추적기, 메일링 리스트 또는 IRC를 통해 공개적으로 문제를 보고 하지 마십시오 . 대신, 가능한 많은 세부정보가 포함된 이메일을 [email protected]
로 보내세요. 이것은 핵심 관리자를 위한 비공개 메일링 리스트입니다.
일반적인 질문과 토론은 Podman 채널을 이용해 주세요.
문제/버그 및 기능에 대한 토론을 위해 GitHub 문제 및 PR 추적 시스템을 사용할 수 있습니다.
lists.podman.io
에도 메일링 리스트가 있습니다. subscribe
제목으로 [email protected]
로 메시지를 보내 구독할 수 있습니다.
Podman은 setuid 바이너리가 필요 없이 일반 사용자로 쉽게 실행할 수 있습니다. 루트 없이 실행되는 경우 Podman 컨테이너는 사용자 네임스페이스를 사용하여 컨테이너의 루트를 Podman을 실행하는 사용자로 설정합니다. Rootless Podman은 컨테이너를 실행하는 사용자에게 없는 권한 없이 잠긴 컨테이너를 실행합니다. 이러한 제한 중 일부는 (예를 들어 --privileged
를 통해) 해제될 수 있지만 루트가 없는 컨테이너는 이를 시작한 사용자보다 더 많은 권한을 갖지 않습니다. Podman을 사용자로 실행하고 호스트에서 /etc/passwd
에 마운트하는 경우 사용자에게 권한이 없기 때문에 여전히 이를 변경할 수 없습니다.
몇 가지 단점이 있지만 거의 모든 일반 Podman 기능을 사용할 수 있습니다. 최신 Podman 릴리스는 추가 구성 없이 루트 없이 실행할 수 있어야 하지만 운영 체제에는 설치 가이드에 자세히 설명된 몇 가지 추가 구성이 필요할 수 있습니다.
루트 없는 Podman을 사용하려면 관리자의 약간의 구성이 필요하며, 필요한 설정은 여기에 문서화되어 있습니다.
Podman Desktop은 Linux, Windows 및 Mac 시스템에서 Podman 및 Kubernetes를 위한 로컬 개발 환경을 제공합니다. Linux가 아닌 운영 체제에서 podman machine
백엔드를 사용하여 컨테이너를 실행하는 Podman용 모든 기능을 갖춘 데스크톱 UI 프런트엔드입니다. 전체 컨테이너 수명주기 관리(이미지 구축, 가져오기 및 푸시, 컨테이너 생성 및 관리, 포드 생성 및 관리, Kubernetes YAML 작업)를 지원합니다. 이 프로젝트는 GitHub에서 개발되며 기여를 환영합니다.
다양한 스토리지 백엔드에 이미지를 전문적으로 서명하고 푸시합니다. 해당 작업은 Skopeo를 참조하세요.
컨테이너 관리를 위한 Kubernetes CRI 인터페이스 지원. CRI-O 데몬은 이를 전문으로 합니다.
Podman은 다양한 측면에서 OCI 프로젝트와 최고의 라이브러리를 사용합니다.
런타임: 우리는 OCI 런타임 도구를 사용하여 crun 및 runc와 같은 OCI 호환 런타임과 함께 사용할 수 있는 OCI 런타임 구성을 생성합니다.
이미지: 이미지 관리는 컨테이너/이미지 라이브러리를 사용합니다.
스토리지: 컨테이너 및 이미지 스토리지는 컨테이너/스토리지로 관리됩니다.
네트워킹: Netavark 및 Aardvark를 사용하여 네트워킹을 지원합니다. 루트 없는 네트워킹은 파스타 또는 slirp4netns를 통해 처리됩니다.
빌드: 빌드는 Buildah를 통해 지원됩니다.
Conmon: Conmon은 Podman과 CRI-O 모두에서 사용되는 OCI 런타임 모니터링 도구입니다.
Seccomp: Podman, Buildah 및 CRI-O를 위한 통합 Seccomp 정책입니다.
블로그, 출시 공지 등을 보려면 podman.io 웹사이트를 확인하세요!
설치 참고 사항 사용자 환경에 Podman을 설치하는 방법에 대한 정보입니다.
OCI 후크 지원 Podman이 컨테이너를 시작할 때 실행되도록 OCI 후크를 구성하는 방법에 대한 정보입니다.
Podman REST API에 대한 Podman API 문서입니다.
Podman 명령 매뉴얼 페이지에 대한 링크가 포함된 Podman 명령 목록과 대부분의 경우 사용 중인 명령을 보여주는 비디오입니다.
Podman 컨테이너 이미지 quay.io에서 찾은 Podman 컨테이너 이미지에 대한 정보입니다.
Podman 문제 해결 가이드 Podman에 대한 일반적인 문제 및 솔루션 목록입니다.
Podman Usage Transfer Podman을 활용하는 인프라와 관련된 운영 및 개발 전송에 유용한 정보입니다. 이 페이지에는 Docker 명령과 그에 상응하는 Podman 명령을 보여주는 표가 포함되어 있습니다.
Podman 사용에 대한 튜토리얼입니다 .
원격 클라이언트 Podman 원격 클라이언트 사용에 대한 간략한 방법입니다.
Rootless 환경에서 Podman의 기본 설정 및 사용 Rootless Podman을 실행하는 데 필요한 설정 및 구성을 보여주는 튜토리얼입니다.
릴리스 노트 최신 Podman 버전에 대한 릴리스 노트입니다.
기여 이 프로젝트에 기여하는 방법에 대한 정보입니다.
Buildah와 Podman은 대부분의 Linux 플랫폼에서 사용할 수 있는 두 개의 보완적인 오픈 소스 프로젝트이며 두 프로젝트 모두 GitHub.com에 있으며 Buildah는 여기에 있고 Podman은 여기에 있습니다. Buildah와 Podman은 모두 OCI(Open Container Initiative) 이미지 및 컨테이너에서 작동하는 명령줄 도구입니다. 두 프로젝트는 전문성이 다릅니다.
Buildah는 OCI 이미지 구축을 전문으로 합니다. Buildah의 명령은 Dockerfile에 있는 모든 명령을 복제합니다. 이를 통해 루트 권한이 필요하지 않으면서 Dockerfile을 사용하거나 사용하지 않고 이미지를 구축할 수 있습니다. Buildah의 궁극적인 목표는 이미지 빌드를 위한 하위 수준의 coreutils 인터페이스를 제공하는 것입니다. Dockerfile 없이 이미지를 빌드하는 유연성 덕분에 다른 스크립팅 언어를 빌드 프로세스에 통합할 수 있습니다. Buildah는 간단한 포크 실행 모델을 따르며 데몬으로 실행되지는 않지만 다른 도구에 판매될 수 있는 golang의 포괄적인 API를 기반으로 합니다.
Podman은 가져오기 및 태그 지정과 같은 OCI 이미지를 유지 관리하고 수정하는 데 도움이 되는 모든 명령과 기능을 전문으로 합니다. 또한 해당 이미지에서 생성된 컨테이너를 생성, 실행 및 유지 관리할 수 있습니다. Dockerfiles를 통해 컨테이너 이미지를 빌드하기 위해 Podman은 Buildah의 golang API를 사용하며 Buildah와 독립적으로 설치할 수 있습니다.
Podman과 Buildah의 주요 차이점은 컨테이너 개념입니다. Podman을 사용하면 사용자는 이러한 컨테이너의 목적이 오래 지속되는 "전통적인 컨테이너"를 만들 수 있습니다. Buildah 컨테이너는 실제로 콘텐츠를 컨테이너 이미지에 다시 추가할 수 있도록 생성되었습니다. 쉽게 생각하는 방법은 buildah run
명령이 Dockerfile에서 RUN 명령을 에뮬레이션하는 반면, podman run
명령은 기능에서 docker run
명령을 에뮬레이션하는 것입니다. 이 점과 기본 스토리지 차이로 인해 Buildah 내에서 Podman 컨테이너를 볼 수 없으며 그 반대의 경우도 마찬가지입니다.
간단히 말해서 Buildah는 OCI 이미지를 생성하는 효율적인 방법이며 Podman을 사용하면 익숙한 컨테이너 cli 명령을 사용하여 프로덕션 환경에서 해당 이미지와 컨테이너를 관리하고 유지할 수 있습니다. 자세한 내용은 컨테이너 도구 가이드를 참조하세요.
$ podman run quay.io/podman/hello Trying to pull quay.io/podman/hello:latest... Getting image source signatures Copying blob a6b3126f3807 done Copying config 25c667d086 done Writing manifest to image destination Storing signatures !... Hello Podman World ...! .--"--. / - - / (O) (O) ~~~| -=(,Y,)=- | .---. /` |~~ ~/ o o ~~~~.----. ~~ | =(X)= |~ / (O (O) ~~~~~~~ ~| =(Y_)=- | ~~~~ ~~~| U |~~ Project: https://github.com/containers/podman Website: https://podman.io Documents: https://docs.podman.io Twitter: @Podman_io