시뻘건 개발 도전기

[docker] alpine linux 이미지 만들고 실행하기 본문

기타/DevOps

[docker] alpine linux 이미지 만들고 실행하기

시뻘건볼때기 2023. 3. 31. 14:06
반응형

Alpine linux에 대해 살짝 알아보고 가자.

알파인 리눅스는 보안/간편성/리소스 효율을 위해서 디자인된 리눅스 배포판이다.

[그림 1]과 같이 알파인 리눅스는 glibc 대신에 musl libc를 사용하게 되었는데 라이브러리의 size 차이가 많이 차이나는 사실을 알 수 있다.

[그림 1] musl libc의 라이브러리 크기 비교

 

[그림 2] 리눅스 배포판 OS 이미지 크기

 

docker images

상기 command로 OS 이미지의 크기를 [그림 2 ]와같이 알 수 있다. 타 OS 이미지와 비교해보았을 때 알파인이 훨신 더 경량화되어있다는 것을 알 수 있다.

이 처럼 size가 중요한 이유는 메모리/디스크 공간을 적게 잡아먹고, 로딩이 빠른만큼 앱이 올라가는 속도가 빨라진다.

하지만 많은 dependency 라이브러리가 빠져있기 때문에 멀티 스테이지 빌드 방식을 사용한다.

 

 

# Alpine linux base이미지 다운로드
wget https://github.com/alpinelinux/docker-alpine/raw/fc965e3222f368bea8e07c1c1da70b6928281a76/x86_64/alpine-minirootfs-3.15.4-x86_64.tar.gz

# 압축 해제
tar zxf alpine-minirootfs-3.15.4-x86_64.tar.gz -C alpine_root/

# 리눅스 구동하기 위한 디렉토리 구조 확인
ls -l alpine_root/

# 이미지를 빌드하기위한 docker file 생성
vim dockerFile
.......
FROM fedora
COPY ./alpine_root /
CMD ["/bin/sh"]
.......

# 기본 알파인 이미지 생성
docker build --tag alpine_fedora .

# 이미지 확인
docker images | grep alpine_fedora

# 이미지 실행/os정보 확인
docker run --rm alpine_fedora apk update

 

alpine linux의 이미지를 만들고 실행까지 해보았다.

반응형

'기타 > DevOps' 카테고리의 다른 글

[linux] 커널  (0) 2023.03.31
[docker] 다중 운영체제 지원  (0) 2023.03.30
[docker] 컨테이너 기술  (0) 2023.03.14
Comments