Problem -> Docker for Windows
Korzystamy z wirtualizacji Hyper-V (Docker for Windows Hyper-V Udostępnić Internet), tworzymy maszynę wirtualną, ale nie ma ona dostępu do internetu? Żaden problem. Możemy to łatwo rozwiązać!
Hyper-V
Hyper-V (nazwa kodowa Viridian[1]) – oprogramowanie stosowane do wirtualizacji fizycznych maszyn, komputerów. Dzięki niemu można uruchamiać różne systemy operacyjne bez konieczności fizycznej ingerencji w już zainstalowany system operacyjny, na jednej fizycznej maszynie bez konieczności dzielenia dysku na partycje. Wirtualny komputer ma własny, wirtualny sprzęt komputerowy i BIOS. Nazywa się go maszyną wirtualną.
Narzędzie to dostępne jest jako zewnętrzny program doinstalowywany do Windows Server 2008, jako właściwość (feature) w Windows Server 2008 R2, Windows Server 2012 i Windows 8 Pro lub wyższej wersji albo jako oddzielny produkt Microsoft Hyper-V Server. Pozwala on na instalowanie w wirtualnej maszynie systemów x86 i x64 z rodziny Windows, ale też SUSE Linux Enterprise od wersji 10.3 i Red Hat Linux Enterprise od wersji 5.2.
https://pl.wikipedia.org/wiki/Hyper-V
Hyper-V: Sposób działania
Hyper-V składa się z jednej partycji nadrzędnej, która jest zasadniczo maszyną wirtualną mającą specjalny lub uprzywilejowany dostęp. Jest to jedyna maszyna wirtualna z bezpośrednim dostępem do zasobów sprzętowych. Wszystkie pozostałe maszyny wirtualne, znane jako partycje Goście, przechodzą przez partycję nadrzędną, aby uzyskać dostęp do urządzenia.
Partycja nadrzędna jest właścicielem klawiatury, myszy, ekranu i innych urządzeń dołączonych do serwera hosta. Nie ma ona bezpośredniej kontroli nad zegarami i kontrolerami przerwań, które wykorzystuje hyperwizor.
Partycja nadrzędna zawiera dostawcę WMI, aby ułatwić zarządzanie wszystkimi aspektami wirtualizowanego środowiska, jak również wirtualizowanego stosu (Virtualization Stack), który w imieniu podrzędnych partycji wykonuje zadania związane ze sprzętem. Ponadto wszelkie sterowniki IHV (Independent Hardware Vendor) potrzebne do sprzętu systemu hosta są zawarte w partycji nadrzędnej, a ewentualne sterowniki utworzone dla edycji Windows Server 2008 x64 będą także działać w partycji nadrzędnej[2].
https://pl.wikipedia.org/wiki/Hyper-V
Przyczyna
Powodem braku internetu jest brak Wirtualnego Przełącznika (ang. Virtual Switch) zdefiniowanego pomiędzy naszym komputerem a maszyną wirtualną. Virtual Switch możęmy traktować jak taki „most” łączący naszą sieć lokalnego komputera z siecią maszyny wirtualnej (ang. virtual machine VM).
Rozwiązanie
- Otwórz Hyper-V Manager
- Po prawej stronie wybierz Virtual Switch Manager
- Zaznacz DockerNAT
- Wybierz External Network i wybierz źródło internetu. W moim przypadku jestem podłączony po Wi-Fi, więc to je wybieram, czyli Intel(T) Dual Band Wirless-AC. Jeśli jesteś podłączony „po kablu” wybierz opcje Ethernet Connection.
![[ROZWIĄZANY] Docker for Windows Hyper-V udostępnić internet kontenerom lub maszynie wirtualnej - sprawdź 1 super proste rozwiązanie? 2 [ROZWIĄZANY] Docker for Windows Hyper-V udostępnić internet kontenerom lub maszynie wirtualnej - sprawdź 1 proste rozwiązanie?](https://bigdata-etl.com/wp-content/uploads/2019/10/hyperV2-1024x772.png)
Ta konfiguracja sprawi, że internet będzie dostępny z poziomu kontenerów Docker oraz maszyn wirtualnych.