개요

docker 를 사용할 경우 컨테이너용 OS 로 alpine linux 를 많이 사용합니다. 

알파인 리눅스는 네트워크 장비등 임베디드 환경에서 사용을 목표로 설계해서 가볍고 빠르므로 컨테이너의 base OS 로도 적합한 장점이 있습니다.

단점으로는 저도 docker  컨테이너때문에 알게 된 배포판이고 일반적으로 많이 사용하는 Ubuntu 나 Red Hat 계열이 아니기 때문에 별도의 학습이 필요하다는 점입니다.


특히 알파인은 용량을 줄이려고 system 의 C runtime 도 교체하고 GNU Utils 대신 busybox 를 사용하고 별도의 패키지 관리자(ark)가 있는 등 기존 배포판과 다르고 trouble shooting 이 어려운 문제가 있습니다.


UBI 란

UBI(Universal Base Image) 는 레드햇이 컨테이너에 사용하려고 개발한 운영 체제로 표준 컨테이너 기술인 OCI 와 호환되며 Red Hat Linux 기반이라 yum 을 사용할 수 있고 접근이 쉬운 장점이 있습니다.


특히 Open Shift 연동 등 엔터프라이즈 환경에서 구동되는 것을 염두에 두고 설계했으므로 Enterprise Security, 일관된 성능 제공(Consistent Performance) 같은 장점이 있습니다.


UBI 는 3가지 유형의 기본 이미지(Standard, Minimal, Init)를 제공하며 가장 작은 이미지인 Minimal 의 경우 37 MB(압축시), Standard가 71 MB(압축시) 정도의 작은 크기이므로 컨테이너의 기본 운영 체제로 사용하기 적당하다고 생각합니다.


사용하기

UBI 를 사용하려면 다음 repository 에서 당겨 오면 됩니다. ubi8 과  ubi7  이미지가 있으며 버전 숫자는 Red Hat Enterprise Linux 의 버전과 대응합니다.

즉 ubi8 은 RHEL 8, ubi7 은 RHEL 7 기반입니다.


podman 은 docker 와 명령어가 호환되므로 docker 를 사용시 podman 부분만 docker 로 변경해 주고 sudo 로 실행하면 됩니다.


Base Image

UBI8

podman pull registry.access.redhat.com/ubi8/ubi
BASH


UBI7

podman pull registry.access.redhat.com/ubi7/ubi
BASH


Minimal Image

UBI8

podman pull registry.access.redhat.com/ubi8/ubi-minimal
BASH


UBI7

podman pull registry.access.redhat.com/ubi7/ubi-minimal
BASH

minimal 이미지에서는 yum 을 제공하지 않으므로 rpm 을 사용해야 합니다.


같이 보기


Ref