Wpis z mikrobloga

Może ktoś bardziej mi rozjaśnić zalety konteneryzacji? Bo rozumiem, że docker jakby emuluje OS w obrębie jądra mojego systemu (hosta). No i wymienia się, że na dzięki kontenerowi można odpalić to co tam mamy (np. konkretne aplikacje) na innych systemach jeżeli użyjemy tego samego kontenera.
No ale skoro to działa w obrębie jądra hosta to co jest wtedy gdy odpalamy kontener na innym jądrze, będzie to działać?
Co jeżeli odpalamy kontener na systemie i sprzęcie gdzie w ogóle siedzi ARM, a nie jak u nas x86?
Co jeżeli odpalamy na systemie 32-bitowym zamiast 64-bitowym?
Czy te zalety obejmują tylko jeżeli działamy wokół tych samych kerneli? Wszędzie przy dockerze piszą to samo - jakie to zajebiste, pyk pyk, wszędzie działa, ale w szczegóły i konkrety podać to nie ma i nie mogę znaleźć odpowiedzi na moje pytania.
Wiem że użyłem laickiego języka, no offence (,)
#programowanie #docker #informatyka
  • 11
@c137: docker używa tego samego jądra, dlatego docker na windowsie jest wolny i żre dużo pamięci, bo używa wirtualizacji

że na dzięki kontenerowi można odpalić to co tam mamy (np. konkretne aplikacje) na innych systemach jeżeli użyjemy tego samego kontenera


@c137: tak, jeżeli jądra są kompatybilne. Zazwyczaj największym problemem są biblioteki i zależności. Ponieważ generalnie zarządzanie zależnościami jest trudne to docker gwarantuje, że wszystko będzie działać.

Inne zalety:
* kontenery
@elf_pszeniczny: @jalop: tak, to wiem bo to dokładnie piszą w necie, ale nie odpowiada to na moje pytania.
@Saly

@c137: docker używa tego samego jądra, dlatego docker na windowsie jest wolny i żre dużo pamięci, bo używa wirtualizacji


Dlaczego używa na windowsie wirtualizacji?

tak, jeżeli jądra są kompatybilne.


O właśnie o takie coś mi chodziło. Z 10 źródeł przejrzałem i nikt o tym nie wspomniał. W takim razie jeżeli
@c137: warto poczytać jak działa docker pod spodem (np. tu https://stackoverflow.com/a/40722148 ). Tak w skrócie to używa mechanizmów jądra linuxa, które pozwalają na separację pewnych konceptów. Nie zrobisz tego na windowsie, bo windows chyba nie ma takich mechanizmów. Inna sprawa, to wszystkie obrazy są na linuxa, z uwagi na to, że głównie linuxów używa się na produkcji

W takim razie jeżeli jest inna architektura procesora to jest to jednoznaczne z tym,
@Saly: tak, wiem o różnicach pomiędzy cisc a risc, tylko nie wiem czy inna architektura to również inny kernel. Dlatego ponownie Cię pytam, czy ZAWSZE różniące się od siebie architektury procesora mają różniące się od siebie jądra?
@c137: tak, w jądrze linuxa masz wstawki assemblerowe dla każdej architektury (do poczytania co np. się dzieje dla x86: https://0xax.gitbooks.io/linux-insides/content/Booting/linux-bootstrap-1.html ). Jądro dla innej architektury to osobna "binarka". Obraz dockera zbudowany na ARM nie zadziała na x86. Istnieje też inny problem. Jak zbudujesz obraz i chcesz używać jakiś super nowych ficzerów jak np io_uring, to może się okazać, że docelowa maszyna ma stare jądro, i brak takiego ficzera sprawi, że aplikacja