커널 버전이 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.