Windows image - docker

0

Cześć, czy ktoś z was może przechodził przez stworzenie dockera z windowsem, a następnie zainstalowanie na jej aplikacji *.exe z UI? Stworzenie dockera nie jest problemem, lecz aplikacja wydaje się być. W sieci znalazłem aby korzystać z dockera poprzez VM z windą, lub przez wine. Ktoś coś może poradzić?
Pozdr.

2

Co chcesz osiągnąć i co to jest docker z windowsem?

1

Co próbujesz osiągnąć?

Da się instalować aplikacje Windows całkowicie z konsoli (różnej maści silent install, chocolatey, scoop), da się uruchamiać aplikacji Windows z GUI w kontenerach Dockera (aczkolwiek tam nie ma wszystkich bibliotek, więc pewnie nie wszystkie), ale niezbyt da się potem z nimi wchodzić w interakcję :)

0

@Patryk27:
Tak, chodzi o kontener z Windą zamiast linuxa ;)

Co chcę osiągnąć - utrzymujemy aplikację która jest tylko na windowsa i ma GUI, nie było do niej żadnej testów więc je stworzyłem(na ten moment klikalne e2e :/) , a że pracuje na macu muszę za każdym razem uruchamiając testy korzystać z VM. Dlatego wpadłem na pomysł czy była by możliwość stworzenia kontenera z windowsem, następnie zainstalować naszą aplikację, a jeszcze następnie uruchamiać testy. Docelowo fajnie by było wrzucić to na serwer i umiejscowić w pipelinie Jenkinsa

2

Można mieć kontener z Windowsem, ale by go odpalić potrzebujesz Windowsa. Dokładnie tak samo jak masz z kontenerami Linuksowymi. Więc z Twojej perspektywy absolutnie nic się nie zmieni, no może będziesz mógł używać polecenia docker z poziomu macOSa, ale kontenery dalej będą się odpalały w VMce.

0

Ktoś, coś? Ewentualnie jeśli się mylę w jakimś aspekcie to mnie poprawcie/ wytłumaczcie.

0

@Nesseb:
Co chcę osiągnąć - utrzymujemy aplikację która jest tylko na windowsa i ma GUI, nie było do niej żadnej testów więc je stworzyłem(na ten moment klikalne e2e :/) , a że pracuje na macu muszę za każdym razem uruchamiając testy korzystać z VM. Dlatego wpadłem na pomysł czy była by możliwość stworzenia kontenera z windowsem, następnie zainstalować naszą aplikację, a jeszcze następnie uruchamiać testy. Docelowo fajnie by było wrzucić to na serwer i umiejscowić w pipelinie Jenkinsa

To tak nie działa, zakładając, że dobrze rozumiem co chcesz zrobić. Docker korzysta z mechanizmów natywnych w kernelu Linuksa. Windows nie ma tych mechanizmów (tych, co wymaga docker, ekwiwalenty własne pewnie jakieś posiada). A zatem, czy będąc na macOS, czy na Windows, to "dockeryzując" Windowsa (jako Windowsa pod którym chcesz coś odpalać) będziesz to musiał zrobić jako VMkę, czyli VMka z Windows i tam ewentualnie Docker, tylko, że wtedy to zupełnie bez sensu, bo po co jeszcze Ci docker w VMce z Windows (Docker sam w sobie jest VMką na Win/macOS).

Jak dla mnie zabrałeś się do tego od złej strony, widziałem już taki przypadek z taką apką "wszytą" w Windowsa i najzwyklejsza VMka wydaje się być tutaj optymalnym rozwiązaniem. Czy hypervisor to będzie vmware, virtualbox czy jakiś kvm/qemu, to nie ma już znaczenia. Jak nie chcesz mieć osobnej maszyny do tego to postaw VMkę z Windows i styknie.

Alternatywą jest tutaj wine, jednak wtedy zalecam porządnie aplikację przetestować - czy działa poprawnie pod wine, bo różnie może z tym być - jak będzie chodzić ok pod wine to nie będziesz miał performance penalty związanego z VMką. Jak aplikacja jest bardzo ważna biznesowo i nie powinna latać na niesprawdzonej konfiguracji to tylko VMka.

0

@TurkucPodjadek: tu Ciebie zaskoczę, są kontenery na Windowsa, ale oczywiście wymagają Windowsa jako host - https://docs.microsoft.com/en-us/virtualization/windowscontainers/about/

1

@hauleth: a doczytałeś na tej stronie "System requirements"? Bo tam stoi jak byk HyperV, czyli albo Windows nie ma natywnego mechanizmu (albo ma, tylko nie mają rozpowszechnionej implementacji tego rozwiązania), albo to coś w stylu WSL2 obsługiwane przez HyperV, czyli VMka.

0

@hauleth: to, że coś o czymś przeczytasz, nie oznacza, że od razu działa. Może w jakichś Azurowych instancjach gdzieś to jest zintegrowane, bo w rzeczywistości z tym średnio.

Jak Twoje "rozwiązanie" podchodzi do problemu OPa? Spokojnie, nie czytaj, sprawdziłem to dla Ciebie, bo siedzę na Win10Pro. Otóż masz rację, jest mechanizm natywny Windows Containers. Co się stanie jak go włączysz? A no zupełnie nic. System się odpali jak zawsze i nic dla usera to zmienia.

No, ale może Docker z tego korzysta gdy jest włączone, wszakże na 4programmers o tym piszą. No i o to efekt, gdy Dockera spróbujemy wtedy zainstalować z włączonym Windows Containers:

https://i.imgur.com/xXibcUB.png

Po instalacji Docker zarzeka się, że korzysta z WSL2, alternatywnie może używać HyperV

Czyli fakt, Windows ma mechanizm kontenerów (nie wykluczałem w pierwszym poście, że może mieć własny). A czy to rozwiązuje teraz jakiś problem? Jak widać nie, skoro muszę mieć WSL2 lub HyperV.

0

@TurkucPodjadek: @hauleth dzięki za wyjaśnienie. Kurczę no szkoda :( to jeśli jestem skazany na VMkę, to powiedzcie proszę czy jest możliwość jakoś to przyautomatyzować? Widziałem że można uruchomić VMkę w headless mode więc może jest szansa aby zrobić jakiegoś pipeline?

1 użytkowników online, w tym zalogowanych: 0, gości: 1