Widzę, że wiele obrazów dokerów w repozytorium dokerów jest wykonanych przy użyciu bazy Ubuntu.
Co to znaczy? Czy każdy kontener zawiera zredukowaną wersję jądra systemu Linux?
Czy kontenery siedzą na własnych jądrach? Ale myślałem, że kontenery współużytkują jądro hosta (którym w niektórych przypadkach jest boot2docker, niestandardowa kompilacja Tiny Core Linux, a w innych coś takiego jak CoreOS).
EDYCJA: nieco wyjaśnienie pytania. Tak, wiem, że doker to kontener procesu, a nie pełna maszyna wirtualna. Ale skoro w oficjalnym rejestrze hubu dokującego i innych systemach operacyjnych, takich jak CentOS, znajdują się kontenery „Ubuntu”, co oznacza uruchomienie Ubuntu w kontenerze?
Odpowiedź: Ach, to właśnie mnie olśniło. Są to procesy lądowe użytkowników Ubuntu, zawierające apt-get i inne procesy konfiguracyjne dla konkretnej wersji Ubuntu. Podobnie dla CentOS. Docker to nie pojedynczy proces, tylko pojedynczy wpis. Zatem dla tych dystrybucji punktem wejścia jest jakiś proces inicjujący, który odradza inne procesy.
Odpowiedzi:
Docker używa jądra systemu operacyjnego hosta, wewnątrz kontenera nie ma niestandardowego ani dodatkowego jądra. Wszystkie kontenery uruchomione na komputerze współużytkują to jądro „hosta”.
Wikipedia mówi http://en.wikipedia.org/wiki/Docker_(software) , które
cgroups, przestrzeni nazw i LXC to cechy jądra Linuksa do izolowania grup procesów; wciąż jest jedno jądro, jeden harmonogram i jedno wystąpienie menedżera pamięci jądra.
Boot2docker i CoreOS są po prostu lekkimi dystrybucjami Linuksa z niektórymi jądrami hosta; można ich użyć do załadowania kontenerów Docker.
http://boot2docker.io/
http://en.wikipedia.org/wiki/CoreOS
źródło
FROM
mieć obraz podstawowy Ubuntu, gdy host już działa Ubuntu. Aby odpowiedzieć na pytanie, musisz wyjaśnić, co to jest obraz podstawowy.W prawie wszystkich przypadkach jądro systemu operacyjnego hosta jest współużytkowane. Aby uruchomić inne jądro, musisz użyć wirtualizacji. Jest to rzadkie i stosowane tylko wtedy, gdy jest to konieczne ze względu na obniżenie wydajności.
„Kontener Docker Engine zawiera tylko aplikację i jej zależności. Działa jako izolowany proces w przestrzeni użytkownika w systemie operacyjnym hosta, współużytkując jądro z innymi kontenerami. W ten sposób cieszy się z izolacji zasobów i alokacji zasobów maszyn wirtualnych, ale jest o wiele więcej przenośny i wydajny ”.
To może pomóc wyjaśnić, jak to działa:
Źródło: https://www.docker.com/whatisdocker/
źródło