티스토리 뷰

IT

[Docker] 컨테이너는 어떤 계열의 리눅스일까?

주인장 진빼이

 

서론

리눅스는 오픈소스의 출발점이라고 말을 해도 과언이 아닐까 싶다.

오늘날의 github 같은 오픈소스 플랫폼, 문화는 리눅스에서 유래되었다고 생각한다.

 

리눅스는 커널을 기반으로 여러가지 배포판이 만들어진다.

우리가 대중적으로 알고 있는 센토스(CentOS), 우분투(Ubuntu) 모두 배포판의 일종이다.

 

커널을 확인하기 위해서는 명령어를 통해 사용할 수 있으나,

일반적인 리눅스와 다르게 도커 컨테이너는 경량하면서, 불필요한 리눅스 패키지를 설치하지 않기 때문에

명령어 사용에 제한적이다.

 

커널을 확인해야하는 이유는 배포판에 따라 사용할 수 있는 명령어가 조금씩 다르기 때문이다.

배포판에 따라 설치해야할 의존성 패키지 모듈에 대한 정보도 다르다.

 

이 밖에도 명령어를 찾아볼 때 A 블로그에 가서 포스팅에 적힌 명령어를 사용하려고 했으나

블로그 주인이 사용했던 배포판하고 서로 달라 명령어 사용이 불가능한 경우가 종종발생한다.

 

그러기 때문에 명령어를 사용하기 전에 커널 버전의 확인은 반드시 중요한 과정중 하나라고 생각한다.

 

 

리눅스는 크게 페도라(Fedora), 데비안(Debian) 계열로 나뉘는데

그 유명한 레드햇(RHEL)이 페도라와 동일한 계열이라고 볼 수 있다.

페도라 기반으로 유명한 배포판 OS는 CentOS, 데비안 기반으로 유명한 OS는 Ubuntu OS 가 있다.

 

배포본 관련해서 아래 링크를 통해 확인하도록 하자. (링크: samsungsds.com)

 

리눅스 배포본을 비교해 보자

리눅스 배포본을 비교해 보자

www.samsungsds.com

 

 

도커에서 컨테이너의 리눅스 커널은 정~말 어떤 기반인지 알 수가 없기 때문에 명령어로 직접 확인해야 한다.

하지만 대다수의 컨테이너들은 apt 명령어를 사용할 수 있는 것으로 짐작하여 보아

Debian 계열의 리눅스 배포판이 많이 사용되어진다.

 

 

리눅스 커널을 확인하는 명령어는 uname -a, cat /etc/proc 등이 있다.

하지만 도커에서는 이 명령어를 사용하여도 직관적으로 커널 정보에 대해 알 수 없었다.

이 외에도 여러 명령어들이 존재하지만

위 명령어들을 사용한다고 해서 도커에서 리눅스 배포판 커널을 확인할 수 있는 것은 아니었다.

 

직접 확인하기

여러가지 케이스를 통해 조금 더 자세히 알아보도록 하자.

페도라 리눅스, 오라클 리눅스, eclipse OpenJDK, nginx 총 4개의 이미지를 준비했다.

 

리눅스배포판 이름이 명시되어 있는 부분은 커널 버전을 확인하지 않아도 쉽게 알 수 있지만,

명시되지 않은 부분은 직접 명령어를 사용하여 커널 기반을 확인해야한다.


 

커널을 확인하는 명령어를 사용하여 직접 커널 버전을 확인해보도록 하자.

아래 사진을 보면 알듯이 제대로 확인하기 어렵다.

 

[fedora-linux]

[oracle-linux]

배포판에서 사용 중인 커널을 확인하기 위해서는 가장 쉬운 방법으로 apt 명령어 사용을 시도하는 것이다.

데비안 계열의 리눅스는 apt 명령어를 대다수 지원한다.

apt 명령어 사용도 안되고 uname, cat 명령어를 사용하여도 커널을 확인할 수 없었다.

 

이제 도커에서 커널을 확인할 수 있는 명령어를 사용해보자.

아래 사진처럼 $ cat/etc/os-release 명령어를 사용하여 자세한 정보를 확인할 수 있었다.

[fedora-linux]

[oracle-linux]

이제 어떤 기반인지 눈에 보이지 않는가 ?


 

자 다음으로 nginx, OpenJDK 컨테이너들도 커널을 확인해보자

apt 명령어 사용도 가능하고, $ /cat/issue 명령어를 사용하여 데비안 계열임을 확인할 수 있었다.

[nginx]

$ cat /etc/os-release 명령어를 쳐보면 정확히 알 수 있다. (버전 포함)

nginx 이미지는 데비안 계열의 배포판 중 하나인 셈이다.

 


아래 사진을 확인해보면 apt 명령어 사용도 가능하기 때문에 데비안 계열의 커널로 볼 수 있었고

cat /etc/issue 명령어를 사용하면 우분투임을 확인할 수 있다.

[elipse-openjdk]

우분투이며, 버전을 확인할 수 있었다.

정리

리눅스명 계열
페도라 리눅스 Fedora
오라클 리눅스 Fedora
nginx Debian
eclipse-openjdk Debian

 

도커는 컨테이너에 따라 리눅스 커널이 다르니 확인할 필요가 있다.

도커 컨테이너의 대다수는 데비안 계열이다.

데비안 계열의 배포판 리눅스들은 apt 명령어 사용으로 간단히 커널을 짐작할 수 있다.

컨테이너에서 사용되어지는 리눅스는 기본 리눅스에서 사용하던 명령어로 제대로 파악할 수 없다.

$ cat /etc/os-release 사용하여 도커 컨테이너에서도 os 정보를 확인하여 컨테이너의 OS 정보를 확인할 수 있다.

OS를 알게되면 컨테이너가 어떤 배포판인지 알 수 있다. (데비안, 페도라, 제3의 커널 중)

오라클 리눅스는 페도라 계열이다.

 

 

SOLARIS, OPENSUSE 같은 계열도 있지만 점유율이 적기에 이글에서 언급하지 않는다.

댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함