Plusy i minusy używania kontenerów Windows zamiast kontenerów Linux dla Dockera?


36

Instaluję Docker dla Windows (CE) na Windows 10 i pierwszy ekran pyta mnie:

[] Użyj kontenerów Windows zamiast kontenerów Linux (można to zmienić po instalacji)

To wydaje się ważna decyzja, ale dokumentacja Docker , FAQ i samouczek kontenera Windows nie zawierają informacji o tym, dlaczego mogę wybrać jedną z nich.

Przydatny byłby obiektywny przegląd konsekwencji tego wyboru:

  • Czy jedna opcja będzie szybsza od drugiej?
  • Czy decyzja wpływa na wykorzystanie zasobów systemowych (pamięci RAM, procesora)?
  • Czy mogę uruchomić te same obrazy na obu typach?
  • Czy jedno jest bezpieczniejsze od drugiego?

Wszelkie inne rozróżnienia, które mogłyby pomóc mi dojść do wniosku, byłyby bardzo mile widziane.


Odpowiedź na to pytanie nie jest oparta na opiniach. I to jest akceptowane. Więc nie trzeba go zamykać.
Nils,

Odpowiedzi:


19

Musisz użyć hosta systemu Windows dla kontenerów systemu Windows, ale możesz użyć hosta systemu Linux lub hosta systemu Windows dla kontenerów systemu Linux. Od kwietnia 2018 r. Możesz nawet uruchomić oba jednocześnie .

Czy jedna opcja będzie szybsza od drugiej?

Nie, w czym szybciej?

Czy decyzja wpływa na wykorzystanie zasobów systemowych (pamięci RAM, procesora)?

Windows zużywa więcej zasobów niż Linux - Windows Nano jest tak mały, jak to tylko możliwe

Czy mogę uruchomić te same obrazy na obu typach?

Nie. Możesz uruchamiać aplikacje .NET w kontenerach mono, ale nie możesz uruchomić kontenera systemu Windows na hoście Linux i odwrotnie - to nie to samo co wirtualizacja

Czy jedno jest bezpieczniejsze od drugiego?

Znowu - w czym bezpieczniej? Nie. Oba działają w natywnym Dockerze, więc nie ma to nic wspólnego z hyper-v vs VMware, a bardziej jak Linux vs Windows, więc wszystko zależy od tego, co zamierzasz uruchomić .net, python, java, ruby ​​itp.


2
Po drugie. Przeczytane uzupełnienie tej odpowiedzi containerjournal.com/2016/10/28/…
A.Newgate

4
Więc jeśli wybiorę użycie kontenerów Linux, Docker uruchomi maszynę Wirtualną Linux Hyper-V, aby uruchomić moje kontenery, w przeciwnym razie natywnie uruchomi kontenery Windows? I nie mogę uruchomić obu typów kontenerów jednocześnie?
Duncan Jones

1
okno dokowane dla systemu Windows 10 pozwala to zrobić - ale w produkcji byłoby mnóstwo dokerów z hostami systemu Linux i Windows
Sum1sAdmin

Docker oparty jest na lxc (Linux) - użyje tego samego jądra co host Docker. Jeśli uruchamiasz system Windows w LXC, musi on zwirtualizować lub emulować Windows. Nie jestem pewien, czy to samo dotyczy Win-Dockera, ponieważ Win obsługuje Linux.
Nils,

1
@DuncanJones, zaledwie 3 dni po tym, jak zapytałeś, pojawił się post na blogu na MSDN wyjaśniający, że MOŻESZ jednocześnie uruchamiać kontenery Windows i Linux.
Jonas Heidelberg
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.