19장. Buildah를 사용하여 컨테이너 이미지 빌드
Buildah는 OCI 런타임 사양 을 충족하는 OCI 컨테이너 이미지를 쉽게 빌드합니다. Buildah를 사용하면 이미지를 처음부터 시작하거나 시작점으로 사용하여 작업 중인 컨테이너를 생성할 수 있습니다. 컨테이너 파일의 지침을 사용하거나
에 있는 명령을 에뮬레이션하는 일련의 Buildah 명령을 사용하여 작업 컨테이너에서 이미지를 생성할 수 있습니다.
Containerfile
19.1. Buildah 툴
Buildah는 OCI(Open Container Initiative) 컨테이너 이미지와 이미지에서 작업 컨테이너를 생성하는 명령줄 툴입니다. Buildah를 사용하면 다양한 방식으로 컨테이너 및 컨테이너 이미지를 생성할 수 있습니다.
- 처음부터 컨테이너 이미지
-
buildah from scratch
명령을 사용하여 처음부터 최소한의 컨테이너 이미지를 처음부터 새로 생성할 수 있습니다. 최소한의 컨테이너 이미지에는 다음과 같은 이점이 있습니다. 불필요한 파일 또는 종속 항목, 향상된 보안 및 최적화된 성능을 포함하지 마십시오. 자세한 내용은 Buildah를 사용하여 처음부터 이미지 생성 을 참조하십시오. - 컨테이너 이미지의 컨테이너
-
<image> 명령의
buildah를 사용하여 컨테이너 이미지에서 작업 중인 컨테이너를
생성할 수 있습니다. 그런 다음buildah mount
및buildah copy
명령을 사용하여 컨테이너를 수정할 수 있습니다. 자세한 내용은 Buildah를 사용하여 컨테이너 작업을 참조하십시오. - 기존 컨테이너의 컨테이너 이미지
-
bulidah commit
명령을 사용하여 새 컨테이너 이미지를 생성할 수 있습니다. 선택적으로buildah push
명령을 사용하여 새로 생성된 컨테이너 이미지를 컨테이너 레지스트리로 내보낼 수 있습니다. 자세한 내용은 Buildah를 사용하여 컨테이너 작업을 참조하십시오. - Containerfile의 지침의 컨테이너 이미지
-
buildah build
또는buildah bud
명령을 사용하여Containerfile
의 지침에서 컨테이너 이미지를 빌드할 수 있습니다. 자세한 내용은 Buildah를 사용하여 컨테이너 파일의 빌드 및 이미지를 참조하십시오.
Buildah를 사용하는 것은 다음과 같은 방식으로 docker
명령으로 이미지를 빌드하는 것과 다릅니다.
- 데몬 없음
- Buildah에는 컨테이너 런타임 데몬이 필요하지 않습니다.
- 기본 이미지 또는 스크래치
- 다른 컨테이너를 기반으로 이미지를 빌드하거나 빈 이미지로 처음부터 시작할 수 있습니다.
- 이미지 크기 감소
-
Buildah 이미지에는
gcc
,make
,dnf
와 같은 빌드 도구가 포함되어 있지 않습니다. 결과적으로 이미지가 더 안전하므로 이미지를 더 쉽게 전송할 수 있습니다. - 호환성
-
Buildah는 Containerfile을 사용하여 컨테이너 이미지 빌드를 지원하므로 Docker에서 Buildah로 쉽게 마이그레이션할 수 있습니다.
Dockerfile
에서와 동일한 명령을Containerfile
내에서 사용할 수 있습니다. - 대화형 이미지 빌드
- 컨테이너 변경 사항을 생성하고 커밋하여 이미지를 단계별로 빌드할 수 있습니다.
- 간소화된 이미지 생성
-
rootfs
를 생성하고 JSON 파일을 생성하고 Buildah를 사용하여 OCI 호환 이미지를 빌드할 수 있습니다. - 유연성
- Bash에서 컨테이너 빌드를 직접 스크립팅할 수 있습니다.