[Container] Container image build with buildah (podman builder)
Podman의 이미지 빌드 도구인 Buildah로 CentOS 7 이미지에 패키지를 설치해 컨테이너 이미지를 만들고 Podman으로 실행하는 과정을 소개합니다.
요약
buildah from,buildah run,buildah commit순서로 베이스 이미지에서 컨테이너 이미지를 단계별로 만들 수 있습니다.podman build도 내부적으로 Buildah를 이용해 이미지를 빌드합니다.- 만든
sl-test-app이미지는podman run sl-test-app /usr/bin/sl로 실행해 확인합니다.
목차
- Build APP - Container image
- Deploy APP
- Check APP
- Expose APP
- Scale APP
- Update APP
Build APP
이 문서는 Application 을 Build 하는 방법에 대해 설명하고 있습니다.
Buildah 란?
Buildah 는 Podman 의 Container image Build 및 push 등을 지원하는 Tool 로 podman build 을 사용할 경우,
내부적으로 Buildah 를 이용하여 Container image 를 Build 하게 됩니다.
또한 Buildah 를 이용하면 layer 별로 순차적으로 Build 를 수행 할 수 있습니다.
Buildah 설치
- CentOS 7
$ yum install -y buildah - CentOS 8
$ dnf install -y buildah
Podman 설치
- CentOS 7
$ yum install -y podman - CentOS 8
$ dnf install -y podman
Build APP
Build 과정을 이해하기 위해 간단한 APP 을 Container image 로 build 해보겠습니다.
$ buildah from centos:7
$ buildah list < CONTAINER ID 확인
CONTAINER ID BUILDER IMAGE ID IMAGE NAME CONTAINER NAME
bff73bfb1adc * 7e6257c9f8d8 docker.io/library/centos:7 centos-working-container
$ buildah run bff73bfb1adc -- yum -y install epel-release
$ buildah run bff73bfb1adc -- yum -y install sl
$ buildah commit bff73bfb1adc sl-test-app
RUN APP
Build 된 APP 을 실행해보겠습니다.
$ podman run sl-test-app /usr/bin/sl
화면에 무엇이 보이나요?
마치며
위와 같이 간단하게 Container image 를 만들어보고 어떻게 image 가 만들어 지는지 확인 했습니다.
참고 자료
자주 묻는 질문
Buildah와 Podman은 어떤 관계인가요?
Buildah는 Podman의 컨테이너 이미지 빌드와 push 등을 지원하는 도구입니다. podman build를 사용하면 내부적으로 Buildah가 이미지를 빌드합니다.
CentOS에서 Buildah는 어떻게 설치하나요?
CentOS 7은 yum install -y buildah, CentOS 8은 dnf install -y buildah로 설치합니다.
Buildah 명령으로 이미지를 단계별로 만들려면 어떻게 하나요?
buildah from centos:7로 작업 컨테이너를 만들고 buildah run <CONTAINER ID> -- yum -y install sl처럼 패키지를 설치한 뒤 buildah commit <CONTAINER ID> sl-test-app으로 이미지를 저장합니다.