Technologia podstawowa platformy Docker i zasada wdrażania

By Weronika Skotnicka

Jeśli chodzi o wirtualizację, Docker jest zdecydowanie pierwszą rzeczą, która przychodzi na myśl. Po czterech latach szybkiego rozwoju Docker stał się standardem w wielu firmach. A Docker nie jest już zabawką, której można używać tylko na etapie rozwoju. Jako produkt szeroko stosowany w środowisku produkcyjnym, Docker ma bardzo dojrzałą społeczność i wielu użytkowników. A treść w bazie kodu również stała się bardzo duża.

W związku z rozwojem projektu, podziałem funkcji i różnymi dziwnymi zmianami nazw. Ponowne zrozumienie ogólnej architektury Dockera staje się dla nas trudniejsze.

Chociaż Docker ma obecnie wiele komponentów, a jego implementacja jest bardzo złożona. W tym artykule nie chcę zbytnio przedstawiać szczegółowych szczegółów implementacji Dockera. Chcielibyśmy porozmawiać o podstawowych technologiach wspierających pojawienie się platformy Docker, czyli technologii wirtualizacji.

Pojawienie się Dockera musi być spowodowane tym, że obecny backend naprawdę potrzebuje technologii wirtualizacji. Technologia ta rozwiązuje problem spójności między środowiskiem programistycznym. Oraz środowisko produkcyjne na etapie rozwoju, eksploatacji i konserwacji. Za pośrednictwem Dockera możemy również włączyć do kontroli wersji środowisko, w którym działa program. I wyeliminuj możliwość różnych wyników biegu ze względu na środowisko. Jednak chociaż powyższe wymagania sprzyjają pojawieniu się technologii wirtualizacji. Nadal nie możemy mieć idealnego produktu bez odpowiedniego wsparcia technologicznego. W dalszej części tego artykułu przedstawiono kilka podstawowych technologii używanych przez platformę Docker. Jeśli rozumiemy, w jaki sposób są używane i jak działają, możemy jasno zrozumieć, jak działa Docker.

Przestrzenie nazw to metoda, którą Linux udostępnia do oddzielania zasobów, takich jak drzewa procesów, interfejsy sieciowe, punkty montowania i komunikacja międzyprocesowa. Kiedy na co dzień korzystamy z systemu Linux lub macOS, nie musimy uruchamiać wielu całkowicie oddzielnych serwerów. Ale jeśli uruchomimy wiele usług na serwerze, usługi te będą miały na siebie wpływ. Każda usługa widzi procesy innych usług. Może również uzyskać dostęp do dowolnego pliku na komputerze hosta. To jest coś, czego nie chcemy często oglądać. Wolelibyśmy, aby różne usługi działające na tej samej maszynie były całkowicie odizolowane, tak jakby działały na wielu różnych komputerach.

W takim przypadku, gdy usługa na serwerze zostanie naruszona. Intruz może uzyskać dostęp do wszystkich usług i plików na bieżącej maszynie, czego nie chcemy widzieć. W rzeczywistości Docker osiąga izolację różnych kontenerów poprzez przestrzenie nazw Linuksa.

Docker stał się bardzo popularną technologią i jest używany w środowisku produkcyjnym wielu dojrzałych firm. Ale podstawowa technologia Dockera ma w rzeczywistości wiele lat. Przestrzeń nazw systemu Linux, grupa kontrolna i UnionFS obsługują bieżącą implementację platformy Docker. To także najważniejszy powód pojawienia się Dockera.