Tại sao phiên bản kernel không khớp với phiên bản Ubuntu trong bộ chứa Docker?


11

Tôi có một container Docker được xây dựng từ Ubuntu 14.10. Khi tôi đăng nhập vào container để kiểm tra phiên bản Ubuntu và phiên bản kernel, tôi thấy như sau:

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

Tôi nghĩ rằng Ubuntu 14.10 được cho là phiên bản kernel 3.16 (như đã nêu ở đây ), vậy tại sao tôi có phiên bản kernel 3.13.0-24-generic?

Lý do tôi hỏi là vì có một bản vá trong 3.13.0-29-generic mà tôi muốn có (nghĩa là, có ngụy biện làm việc trên AUFS trong container docker của tôi) được thảo luận ở đây .


Container có chạy trên Ubuntu Trusty không? Nếu vậy, đó sẽ là lý do tại sao.
saiarcot895

Câu trả lời:


12

Từ Docker là gì? :

ÁNH SÁNG

Các container chạy trên một máy duy nhất có chung nhân hệ điều hành; họ bắt đầu ngay lập tức và sử dụng ít RAM hơn. Hình ảnh được xây dựng từ các hệ thống tệp lớp và chia sẻ các tệp phổ biến, giúp việc sử dụng đĩa và tải xuống hình ảnh hiệu quả hơn nhiều.

Các container chạy trên kernel hệ điều hành. Trong trường hợp của bạn, máy chủ lưu trữ có thể là Ubuntu 14.04 (chạy kernel gốc) hoặc Ubuntu 12.04 (chạy kernel từ ngăn xếp hỗ trợ phần cứng của Trust ).

Nếu máy chủ là Ubuntu 14.04, bạn có thể cài đặt kernel 3.16:

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

Hoặc nhân 3.19:

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

Đối với Ubuntu 12.04, kernel 3.13 là bản chính thức mới nhất.


Ý bạn là tôi sẽ phải nâng cấp kernel host? Không có cách nào để nâng cấp kernel chứa?
jcm

5
@jcm Không có kernel bên trong một container. Ngay cả khi bạn cài đặt kernel, nó sẽ không được tải khi container bắt đầu. Mục đích chính của một container là cô lập các tiến trình mà không cần phải chạy kernel mới. Đó cũng là lý do tại sao các container bị hạn chế đối với Linux. Nếu bạn cần chạy HĐH khác hoặc phiên bản kernel khác, bạn phải sử dụng ảo hóa.
Eric Carvalho
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.