请问:
如果docker的宿主系统是centos,为什么可以运行ubuntu的镜像呢?
看了docker的介绍后,俺的理解是:镜像系统复用了宿主系统, ubuntu和centos在很多地方还是有很大区别的,
如果宿主系统是centos6.0,镜像系统也是centos6.0, 感觉就很好理解了。
求高人解答!感谢!
PHP中文网2017-04-24 09:15:25
먼저 Linux 커널과 Linux 배포판
을 구별해야 합니다.리눅스 커널은 리눅스 운영체제의 핵심으로 메모리 관리, 디스크(파일 시스템) 관리, CPU(프로세스) 관리 등 하드웨어 관리를 담당한다. .
Linux 배포 버전은 Linux 커널을 기반으로 하며 그래픽 인터페이스, 기능 라이브러리, 소프트웨어 패키지 관리 시스템 등과 같은 일부 도구 소프트웨어를 추가합니다.
CentOS와 Ubuntu는 Linux 배포판이 다릅니다. 둘 다 Linux 커널을 기반으로 하지만 추가되는 도구와 소프트웨어가 다릅니다. 예를 들어, CentOS는 yum 명령을 사용하여 소프트웨어를 설치하는 반면 Ubuntu는 apt-get 명령을 사용하여 소프트웨어를 설치합니다.
그래서 CentOS와 Ubuntu의 커널은 동일하지만(버전은 다를 수 있음), 설치된 소프트웨어가 다릅니다. 즉, 파일 시스템이 다릅니다.
Docker 컨테이너 기술은 Linux 커널을 기반으로 구현되며 주로 두 가지 커널 모듈을 사용합니다.
네임스페이스: 컨테이너 격리에 사용됩니다. 예를 들어 PID 네임스페이스는 컨테이너의 프로세스가 다른 컨테이너의 호스트와 프로세스를 감지할 수 없도록 만듭니다.
Cgroups: 컨테이너가 사용하는 메모리 크기나 CPU 수를 제한하는 등 컨테이너 리소스 제어에 사용됩니다.
CentOS에서 Ubuntu 이미지 기반의 컨테이너를 실행할 때 컨테이너는 CentOS 호스트의 커널과 Ubuntu 이미지를 사용하며, Ubuntu 이미지에는 다양한 Ubuntu 소프트웨어(apt-get)가 설치됩니다.