Czy jest możliwe, aby docker działał w vmware?

19

Prowadzę stację roboczą vmware dla moich potrzeb programistów i muszę utrzymywać różne maszyny wirtualne dla środowisk diff.

Docker wydaje się zatem zezwalać na uruchamianie środowisk diff w kontenerach

  1. Czy w mojej maszynie wirtualnej z systemem Windows 10 x64 mogę uruchomić okno dokowane i używać różnych obrazów i kontenerów do opracowywania, budowania i testowania mojego kodu? (Pamiętaj, że używam mojego środowiska programistycznego na VMware Workstation, podczas gdy doker używa VirtualBox)

  2. Jak wysłać / zabrać tę aplikację (kod + baza danych + interfejs WWW + .....) do produkcji? Czy maszyna produkcyjna musi dobrze obsługiwać Dockera?

Proszę o pomoc w wyjaśnieniu.

Aktualizacja

Przez VMWare mam na myśli VMWare workstation pro.

Hamza Ahmed Zia
źródło

Odpowiedzi:

12

Tak , uruchomienie Dockera na maszynie wirtualnej jest całkowicie możliwe. Docker to lekkie rozwiązanie do wirtualizacji, nie wirtualizuje sprzętu, więc nie będziesz mieć problemów z typowymi dla zagnieżdżonych maszyn wirtualnych.

Wiązanie portów może być nieco trudne, ponieważ musisz jakoś połączyć maszynę wirtualną dev-env w VMware z Docker VM w VirtualBox.

Możesz również napotkać problemy, jeśli chcesz udostępnić foldery hosta usłudze w kontenerze Docker. Systemy plików Windows są ograniczone w porównaniu do systemów Linux pod względem szczegółowości uprawnień, a niektóre usługi tego nie lubią. (ten problem nie jest związany z dokerem)

Ogólnie rzecz biorąc, Twoja aplikacja nie jest zablokowana w Docker w produkcji. Usługi dokeryzowane komunikują się ze światem za pośrednictwem sieci, podobnie jak zwykłe usługi. Jednak aplikacja zaprojektowana z myślą o Dockerze (lub bardziej ogólnie w chmurze) może być bardziej odporna na awarie i łatwiejsza w utrzymaniu.

gronostaj
źródło
5

Ten blog mówi o tym, jak dokładnie używać Dockera w systemie Windows z VMWare Workstation. Możesz nawet użyć systemu Windows 7.

https://stefanscherer.github.io/yes-you-can-docker-on-windows-7/

Najpierw zainstaluj menedżera pakietów Chocolatey dla Windows (jest to polecenie jednowierszowe)

@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

następnie zainstaluj Docker, aby korzystać ze stacji roboczej VMWare

choco install -y docker  
choco install -y docker-machine  
choco install -y docker-machine-vmwareworkstation  

Utwórz domyślną maszynę wirtualną

docker-machine --native-ssh create -d vmwareworkstation default  

Ustaw zmienne środowiskowe

docker-machine env | iex

Teraz możesz już zacząć.

steampowered
źródło
Doskonały! Dzięki za udostępnienie tego. PS: Ostatnia linia dotyczy programu PowerShell, bez „| iex”, który działałby w cmd
Dmitry Gusarov
Chocolatey była dla mnie nowa, to był dobry punkt wyjścia: hanselman.com/blog/…
ccook
1
Na wypadek, gdyby ktoś inny spróbował tego bez czytania linku, polecenie „Utwórz domyślną maszynę wirtualną” powinno brzmieć: docker-machine --native-ssh create -d vmwareworkstation default(Uwaga brakuje „-”)
Neil
2
  1. Tak, możesz uruchomić dokera w systemie Windows. System Windows na VMWare również działa. Docker uruchamiamy na serwerach Linux na VMWare.
  2. Najlepiej byłoby mieć dokera na maszynie produkcyjnej, ale możliwe byłoby skopiowanie danych z kontenerów. Nie polecam tego jednak.
    Możesz użyć docker savedo zapisania obrazów dokera w plikach.
    Myślę, że warto wspomnieć, że nie zaleca się uruchamiania kilku aplikacji w tym samym kontenerze i nie zaleca się przechowywania danych w kontenerach, do tego należy użyć woluminów.
Mikael Kjær
źródło
Dziękuję za odpowiedź, ale proszę wyjaśnić. Powiedziałeś „Windows na VMWare również działa”, ale czy miałeś na myśli „Docker na VMWare także działa”?
Hamza Ahmed Zia,
@HamzaAhmedZia „VMWare” Co dokładnie? ESXi? Stacja robocza? Bądź konkretny i edytuj swoje pytanie. Stacja robocza istnieje tylko w systemie Linux i Windows.
Ramhound
@Ramhound Mam na myśli stację roboczą. Zaktualizowane pytanie
Hamza Ahmed Zia,
@HamzaAhmedZia, więc w kontekście stacji roboczej autor tej odpowiedzi wskazuje, że możesz uruchomić Docker na maszynie VM VMWare Workstation dla systemu Windows.
Ramhound
@Mikael Jakie jest Twoje zalecenie dotyczące wysyłki do produkcji, ponieważ twierdzisz, że nie zaleca się kopiowania danych z pojemników?
Hamza Ahmed Zia
0

Istnieje duża różnica między hostem dokera (Linux lub Windows):

Tak więc na hoście dokującym Windows na stacji roboczej Vmware (na fizycznym systemie Windows) masz zagnieżdżoną maszynę wirtualną HyperV Linux! To nie jest duży problem, po prostu uważaj, aby włączyć zagnieżdżoną wirtualizację.

François

François YACOB
źródło
Ten punkt dotyczący Windows hostującego maszynę wirtualną HyperV jest niepoprawny, jeśli uruchamiasz Docker dla Windows w trybie Windows Container i używa LCoW obok siebie. Ma inne problemy, ale powiązane artykuły na temat agnostycyzmu Dockera opartego na systemie operacyjnym hosta są w najlepszym razie krótkowzroczne w oparciu o to, dokąd Moby Project zmierza z dokerem opartym na kontenerach Windows w Win 10. Ale po prostu pochłonąłem tydzień, aby odkryć, że krwawiąca krawędź wciąż czerpie krew, a nie cofnęła się do poziomu niebezpieczeństwa, jaki ma tylko wiodąca krawędź. W tym momencie wygląda to na kolejne sześć miesięcy, zanim będzie gotowy jako codzienny kierowca.
Tetsujin no Oni