Docker ja VMWare Workstation samassa Windows-koneessa

Tehtävä oli yksinkertainen, laitoin Dockerin toimivaan Windows-kannettavaan, jossa on jo eläintarha. Asensin Docker Desktopin ja loin säilöjä, kaikki on kunnossa, mutta huomasin nopeasti, että VMWare Workstation lopetti virtuaalikoneiden suorittamisen virheellä:

VMware Workstation and Device/Credential Guard are not compatible. VMware Workstation can be run after disabling Device/Credential Guard.

Työ on pysähtynyt, korjaus on kiireellinen

Docker ja VMWare Workstation samassa Windows-koneessa

Googlaamalla selvisi, että tämä virhe johtuu VMWare Workstationin ja Hyper-V:n yhteensopimattomuudesta samassa koneessa. Ongelma on tiedossa ja tällainen virallinen VMWare-ratkaisu on olemassa korjata, jossa on linkki Microsoft Knowledge Base -tietokantaan Hallinnoi Windows Defender Credential Guardia. Ratkaisu on poistaa Defender Credential Guard käytöstä (Poista Windows Defender Credential Guard -osion kohta 4 auttoi minua):

mountvol X: /s
copy %WINDIR%System32SecConfig.efi X:EFIMicrosoftBootSecConfig.efi /Y
bcdedit /create {0cb3b571-2f2e-4343-a879-d86a476d7215} /d "DebugTool" /application osloader
bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} path "EFIMicrosoftBootSecConfig.efi"
bcdedit /set {bootmgr} bootsequence {0cb3b571-2f2e-4343-a879-d86a476d7215}
bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} loadoptions DISABLE-LSA-ISO
bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} device partition=X:
mountvol X: /d

Uudelleenkäynnistyksen jälkeen Windows kysyy, haluatko todella poistaa Defender Credential Guardin käytöstä. Joo! Tällä tavalla VMWare Workstation palaa normaaliin toimintaan ja olemme samassa paikassa kuin ennen telakointiaseman asennusta.

En ole löytänyt ratkaisua Hyper-V:n ja VMWare Workstationin yhteensovittamiseen, toivottavasti heistä tulee ystäviä uusissa versioissa.

Toinen tapa

Olen pitkään ollut riippuvainen VMWare Workstationista eri tarkoituksiin, yritin päästä pois Hyper-V:stä ja VirtualBoxista, mutta toiminnallisuus ei tyydyttänyt tehtäviäni, joten istun tähän päivään. Kävi ilmi, että on olemassa ratkaisu, kuinka saada ystäviä VMWaresta, Dockerista ja VSCodesta yhdessä työympäristössä.

Docker kone - voit käyttää Docker Engineä virtuaalipalvelimella ja muodostaa yhteyden siihen sekä etänä että paikallisesti. Ja siihen on VMWare Workstation -yhteensopivuusohjain, linkki githubiin

Asennusohjeita en erityisesti kerro uudelleen, vain ainesosaluettelon:

  1. Docker-työkalupakki (Docker kone mukana)
  2. Docker Machine VMware Workstation -ohjain
  3. Telakkatyöpöytä

Kyllä, valitettavasti myös Docker Desktopia tarvitaan. Jos purit sen, asenna se uudelleen, mutta tällä kertaa poista käyttöjärjestelmään muutosten tekemistä koskeva valintaruutu, jotta VMWare Workstation ei katkea uudelleen.

Haluan heti huomauttaa, että kaikki toimii hyvin yksinkertaiselta käyttäjältä, asennusohjelmat kysyvät oikeuksien eskalointia, kun he sitä tarvitsevat, mutta kaikki komentorivin komennot ja komentosarjat suoritetaan nykyiseltä käyttäjältä.

Tämän seurauksena joukkue:

$ docker-machine create --driver=vmwareworkstation dev

Boot2Dockerista luodaan kehittäjävirtuaali, jonka sisään tulee Docker.

Tämä virtuaalikone voidaan liittää VMWare Workstation -käyttöliittymään avaamalla vastaava vmx-tiedosto. Mutta tämä ei ole välttämätöntä, koska VSCoden on nyt suoritettava PowerShell-skripti (jostain syystä docker-machine ja docker-machine-driver-vmwareworkstation päätyivät bin-kansioon):

cd ~/bin
./docker-machine env dev | Invoke-Expression
code

VSCode avautuu toimimaan koodin kanssa paikallisessa koneessa ja telakointiasemassa virtuaalikoneessa. kytkeä Docker Visual Studio Codelle mahdollistaa konsolin hallinnan kätevästi virtuaalikoneen ilman konsoliin pääsyä.

Vaikeudet:

Docker-koneen luomisprosessissa prosessi jäi minulle:

Waiting for SSH to be available...

Docker ja VMWare Workstation samassa Windows-koneessa

Ja jonkin ajan kuluttua se päättyi ylimääräisiin yrityksiin muodostaa yhteys virtuaalikoneeseen.

Kyse on varmennepolitiikasta. Kun luot virtuaalikoneen, sinulla on ~.dockermachinemachinesdev-hakemisto. Tässä hakemistossa on varmennetiedostoja SSH:n kautta yhdistämistä varten: id_rsa, id_rsa.pub. OpenSSH voi kieltäytyä käyttämästä niitä, koska se uskoo, että niillä on lupaongelmia. Vain telakointikone ei kerro tästä mitään, vaan muodostaa yhteyden uudelleen, kunnes kyllästyy.

ratkaisu: Heti kun uuden virtuaalikoneen luominen alkaa, siirrymme ~ .dockermachinemachinesdev -hakemistoon ja muutamme määritettyjen tiedostojen oikeuksia yksi kerrallaan.

Tiedoston on oltava nykyisen käyttäjän omistuksessa, vain nykyisellä käyttäjällä ja JÄRJESTELMÄLLÄ on täydet käyttöoikeudet, kaikki muut käyttäjät, mukaan lukien järjestelmänvalvojaryhmä ja itse järjestelmänvalvojat, on poistettava.

Myös absoluuttisten polkujen muuntamisessa Windowsista Posix-muotoon ja symbolisia linkkejä sisältävien taltioiden sitomisessa voi olla ongelmia. Mutta se onkin toinen tarina.

Lähde: will.com

Lisää kommentti