Strona korzysta z plików cookies w celu realizacji usług i zgodnie z Polityką Plików Cookies.


23.06.2020

PLNOG Online

PLNOG Online
23.06.2020

Nowe zagrożenie

Ramsay
23.06.2020

Chmurowe kopie

Veeam Backup dla Microsoft Azure
19.06.2020

Nowości w kontenerach

Red Hat OpenShift 4.4
19.06.2020

Analityka bezpieczeństwa

FortiAI
19.06.2020

UPS dla obliczeń edge

Schneider APC Smart-UPS
16.06.2020

Przemysłowe SD

Nowe karty Transcend
16.06.2020

Storage dla SMB

QNAP TS-451DeU
16.06.2020

Pamięć masowa

Dell EMC PowerStore

Kontenery i wirtualizacja

Data publikacji: 21-04-2015 Autor: Grzegorz Kuczyński

Wszystko wskazuje na to, że na naszych oczach rodzi się nowy standard technologii wirtualizacyjnej do dystrybucji oprogramowania. Deweloperzy, optymalizując obecnie wdrażane rozwiązania, wskrzesili najstarszą formę wirtualizacji – kontenery, a jednym z najprężniej rozwijających się projektów w ekosystemie GNU/Linux jest Docker, który definiuje pojęcie kontenerów na nowo.

Kontenery w systemie Linux istniały od dawna, a dostępna różnorodność implementacji jest bardzo zadowalająca. Niemal każdemu administratorowi systemów GNU/Linux znane są takie rozwiązania jak LXC, OpenVZ czy Linux-VServer. Dużą popularnością cieszą się również kontenery w innych systemach Uniksowych, takie jak Jali w FreeBSD czy Solaris Zones. Powstaje zatem pytanie, co takiego jest w technologii Docker, że udało się jej zdobyć tak dużą popularność i aspirować do międzyplatformowego standardu. W artykule przyjrzymy się możliwościom Dockera i tym samym postaramy się odpowiedzieć na pytanie, na czym polega jego fenomen.

Część funkcji Dockera dedykowana jest dla rozwiązań wdrażanych na wielką skalę, inne przydadzą się w przypadku pojedynczej instancji kontenera. Zanim jednak zaczniemy je omawiać, warto wspomnieć o technologiach, dzięki którym rozwiązanie powstało. Jest to istotne m.in. dlatego, że bez nich nie uruchomimy kontenerów Dockera.

> KERNEL NAMESPACES

Pierwszy raz mechanizm namespaces pojawił się w jądrze systemu Linux, oznaczonym numerem 3.8, w 2013 roku. Jednocześnie jest to minimalna wersja jądra wymagana przez Dockera. Rozwiązanie zaimplementowano w celu lepszej obsługi kontenerów, a jego celem jest kompleksowa separacja zasobów systemowych. Zasoby te zostały podzielone na sześć bazowych komponentów: pid, net, ipc, mnt, uts, user:

 

  • pid – zapewnia separację procesów w systemie, każda przestrzeń PID posiada swój własny proces nr 1 (np. init lub systemd);
  • net – zapewnia separację dla interfejsów sieciowych, każda przestrzeń posiada swój własny interfejs;
  • ipc – zapewnia separację komunikacji międzyprocesowej i dzielenia zasobów za pomocą takich mechanizmów jak semafory;
  • mnt – zapewnia separację głównego systemu plików, zasób zamontowany do jednej przestrzeni nazw jest niedostępny dla innych przestrzeni nazw;
  • uts – zapewnia separację dla nazwy hosta i domeny, pozwala na oddzielne ustawianie tych nazw dla wszystkich procesów w przestrzeni nazw. Nazwa UTS wywodzi się od struktury używanej przez systemową funkcję uname();
  • user – zapewnia izolację ID użytkownika i grupy pomiędzy przestrzeniami nazw, ten sam użytkownik może być użytkownikiem nieuprzywilejowanym na hoście głównym i uprzywilejowanym (ID 0) w jednej z przestrzeni nazw.

Artykuł pochodzi z miesięcznika: IT Professional

Pełna treść artykułu jest dostępna w papierowym wydaniu pisma.

.

Transmisje online zapewnia: StreamOnline

All rights reserved © 2019 Presscom / Miesięcznik "IT Professional"