16장. 컨테이너에서 Skopeo, Buildah 및 Podman 실행
컨테이너에서 Skopeo, Buildah, Podman을 실행할 수 있습니다.
Skopeo를 사용하면 모든 계층이 있는 전체 이미지를 다운로드하지 않고도 원격 레지스트리에서 이미지를 검사할 수 있습니다. Skopeo를 사용하여 이미지를 복사하고, 이미지에 서명하고, 이미지를 동기화하고, 다양한 형식 및 계층 압축에서 이미지를 변환할 수도 있습니다.
Buildah는 OCI 컨테이너 이미지를 쉽게 빌드할 수 있습니다. Buildah를 사용하면 처음부터 또는 이미지를 시작점으로 사용하여 작업 중인 컨테이너를 생성할 수 있습니다. 작업 컨테이너에서 또는 Containerfile
의 지침을 사용하여 이미지를 생성할 수 있습니다. 작동 중인 컨테이너의 루트 파일 시스템을 마운트 및 마운트 해제할 수 있습니다.
Podman을 사용하면 컨테이너 및 이미지, 해당 컨테이너에 마운트된 볼륨 및 컨테이너 그룹에서 만든 Pod를 관리할 수 있습니다. Podman은 컨테이너 라이프사이클 관리를 위한 libpod
라이브러리를 기반으로 합니다. libpod
라이브러리는 컨테이너, Pod, 컨테이너 이미지 및 볼륨을 관리하기 위한 API를 제공합니다.
컨테이너에서 Buildah, Skopeo 및 Podman을 실행해야 하는 이유:
CI/CD 시스템:
- podman 및 Skopeo: Kubernetes 내부에서 CI/CD 시스템을 실행하거나 OpenShift를 사용하여 컨테이너 이미지를 빌드하고 이러한 이미지를 다른 컨테이너 레지스트리에 배포할 수 있습니다. Skopeo를 Kubernetes 워크플로에 통합하려면 컨테이너에서 실행해야 합니다.
-
Buildah: 지속적으로 이미지를 빌드하는 Kubernetes 또는 OpenShift CI/CD 시스템 내에 OCI/컨테이너 이미지를 빌드하려고 합니다. 이전에는 Docker 소켓을 사용하여 컨테이너 엔진에 연결하고
docker build
명령을 수행했습니다. 이는 안전하지 않은 암호 없이도 시스템에 대한 root 액세스 권한을 부여하는 것과 같습니다. 이러한 이유로 Red Hat은 컨테이너에서 Buildah를 사용할 것을 권장합니다.
다른 버전:
- 모두: 호스트에서 이전 운영 체제를 실행 중이지만 Skopeo, Buildah 또는 Podman의 최신 버전을 실행하려고 합니다. 해결 방법은 컨테이너에서 컨테이너 툴을 실행하는 것입니다. 예를 들어 최신 버전에 액세스할 수 없는 Red Hat Enterprise Linux 7 컨테이너 호스트에서 Red Hat Enterprise Linux 8에 제공된 최신 버전의 컨테이너 툴을 실행하는 데 유용합니다.
HPC 환경:
- 모두: HPC 환경에서 일반적인 제한은 루트가 아닌 사용자가 호스트에 패키지를 설치할 수 없다는 것입니다. 컨테이너에서 Skopeo, Buildah 또는 Podman을 실행하는 경우 루트가 아닌 사용자로 이러한 특정 작업을 수행할 수 있습니다.
16.1. 컨테이너에서 Skopeo 실행 링크 복사링크가 클립보드에 복사되었습니다!
Skopeo를 사용하여 원격 컨테이너 이미지를 검사할 수 있습니다. 컨테이너에서 Skopeo를 실행하면 컨테이너 루트 파일 시스템이 호스트 루트 파일 시스템과 격리됩니다. 호스트와 컨테이너 간에 파일을 공유하거나 복사하려면 파일과 디렉터리를 마운트해야 합니다.
사전 요구 사항
-
container-tools
meta-package가 설치되어 있습니다.
프로세스
registry.redhat.io 레지스트리에 로그인합니다.
podman login registry.redhat.io
$ podman login registry.redhat.io Username: myuser@mycompany.com Password: <password> Login Succeeded!
Copy to Clipboard Copied! Toggle word wrap Toggle overflow registry.redhat.io/rhel10/skopeo
컨테이너 이미지를 가져옵니다.podman pull registry.redhat.io/rhel10/skopeo
$ podman pull registry.redhat.io/rhel10/skopeo
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Skopeo를 사용하여 원격 컨테이너 이미지
registry.access.redhat.com/ubi10/ubi
를 검사합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow rm
옵션은
컨테이너가 종료된 후registry.redhat.io/rhel10/skopeo
이미지를 제거합니다.