커널 버전이 Docker 컨테이너의 Ubuntu 버전과 일치하지 않는 이유는 무엇입니까?


11

우분투 14.10으로 만든 도커 컨테이너가 있습니다. 컨테이너에 로그인하여 Ubuntu 버전 및 커널 버전을 확인하면 다음이 표시됩니다.

root@~$>> lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.10
Release:    14.10
Codename:   utopic   

root@~$>> uname -a
    Linux ambiata-aws 3.13.0-24-generic #47-Ubuntu SMP Fri May 2 23:30:00 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

우분투 14.10이 커널 버전 3.16 ( 여기에 언급 된 것처럼)이어야한다고 생각했는데 왜 커널 버전 3.13.0-24-generic이 있습니까?

논의되는 (내 고정 표시기 컨테이너에 AUFS에 fallocate 작업을 가지고있다) 내가하고 싶은 것을 3.13.0-29 제네릭에 패치가 있기 때문에 내가 부탁하고 그 이유는 여기가 .


컨테이너가 Ubuntu Trusty에서 실행되고 있습니까? 그렇다면 그 이유입니다.
saiarcot895

답변:


12

에서 부두 노동자는 무엇인가? :

경량

단일 머신에서 실행되는 컨테이너는 동일한 운영 체제 커널을 공유합니다. 그들은 즉시 시작하고 더 적은 RAM을 사용합니다. 이미지는 계층화 된 파일 시스템으로 구성되며 공통 파일을 공유하므로 디스크 사용 및 이미지 다운로드가 훨씬 효율적입니다.

컨테이너는 호스트 OS 커널에서 실행됩니다. 귀하의 경우 호스트는 Ubuntu 14.04 (원래 커널 실행) 또는 Ubuntu 12.04 (신뢰할 수있는 하드웨어 인 에이블먼트 스택 에서 커널 실행 ) 일 수 있습니다.

호스트가 Ubuntu 14.04 인 경우 커널 3.16을 설치할 수 있습니다.

sudo apt-get install linux-generic-lts-utopic

또는 커널 3.19 :

sudo apt-get install linux-generic-lts-vivid

Ubuntu 12.04의 경우 커널 3.13이 최신 공식입니다.


호스트 커널을 업그레이드해야합니까? 컨테이너 커널을 업그레이드하는 방법이 없습니까?
jcm

5
@jcm 컨테이너 안에는 커널이 없습니다. 커널을 설치하더라도 컨테이너가 시작될 때 커널이로드되지 않습니다. 컨테이너의 목적은 새로운 커널을 실행할 필요없이 프로세스를 격리시키는 것입니다. 컨테이너가 Linux로 제한되는 이유이기도합니다. 다른 OS 또는 다른 커널 버전을 실행해야하는 경우 가상화를 사용해야합니다.
Eric Carvalho
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.