Docker και VMWare Workstation στον ίδιο υπολογιστή Windows

Η εργασία ήταν απλή, βάλτε το Docker στον λειτουργικό μου φορητό υπολογιστή Windows, ο οποίος έχει ήδη ζωολογικό κήπο. Εγκατέστησα το Docker Desktop και δημιούργησα κοντέινερ, όλα είναι εντάξει, αλλά γρήγορα ανακάλυψα ότι το VMWare Workstation σταμάτησε να εκτελεί εικονικές μηχανές με ένα σφάλμα:

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

Οι εργασίες έχουν σταματήσει, είναι επείγουσα η επισκευή

Docker και VMWare Workstation στον ίδιο υπολογιστή Windows

Με γκουγκλάρισμα, διαπιστώθηκε ότι αυτό το σφάλμα παρουσιάζεται λόγω της ασυμβατότητας του VMWare Workstation και του Hyper-V στον ίδιο υπολογιστή. Το πρόβλημα είναι γνωστό και υπάρχει μια επίσημη λύση VMWare όπως αυτή επιδιορθώστε, με έναν σύνδεσμο προς τη Γνωσιακή Βάση της Microsoft Διαχειριστείτε το Windows Defender Credential Guard. Η λύση είναι να απενεργοποιήσετε το Defender Credential Guard (το στοιχείο 4 της ενότητας Απενεργοποίηση του Windows Defender Credential Guard με βοήθησε):

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

Μετά την επανεκκίνηση, τα Windows θα σας ρωτήσουν εάν θέλετε πραγματικά να απενεργοποιήσετε το Defender Credential Guard. Ναί! Με αυτόν τον τρόπο, το VMWare Workstation θα επιστρέψει στην κανονική λειτουργία και θα βρεθούμε στο ίδιο σημείο όπως πριν από την εγκατάσταση του docker.

Δεν βρήκα λύση για το πώς να συνδυάσω το Hyper-V και το VMWare Workstation, ελπίζω να γίνουν φίλοι σε νέες εκδόσεις.

Ενας άλλος τρόπος

Είμαι από καιρό εθισμένος στο VMWare Workstation για διάφορους σκοπούς, προσπάθησα να βγω από το Hyper-V και το VirtualBox, αλλά η λειτουργικότητα δεν ικανοποίησε τις εργασίες μου και έτσι κάθομαι μέχρι σήμερα. Αποδείχθηκε ότι υπάρχει μια λύση για το πώς να κάνετε φίλους VMWare, Docker και VSCode σε ένα περιβάλλον εργασίας.

Μηχανή Docker - σας επιτρέπει να εκτελέσετε το Docker Engine σε έναν εικονικό κεντρικό υπολογιστή και να συνδεθείτε σε αυτόν τόσο απομακρυσμένα όσο και τοπικά. Και υπάρχει ένα πρόγραμμα οδήγησης συμβατότητας VMWare Workstation για αυτό, σύνδεσμος στο github

Δεν θα επαναλάβω ιδιαίτερα τις οδηγίες εγκατάστασης, μόνο τη λίστα των συστατικών:

  1. Εργαλειοθήκη Docker (Μηχανή Docker περιλαμβάνεται)
  2. Πρόγραμμα οδήγησης Docker Machine VMware Workstation
  3. Επιφάνεια εργασίας Docker

Ναι, το Docker Desktop, δυστυχώς, θα χρειαστεί επίσης. Εάν το καταργήσατε, εγκαταστήστε το ξανά, αλλά αυτή τη φορά αφαιρώντας το πλαίσιο ελέγχου σχετικά με την πραγματοποίηση αλλαγών στο λειτουργικό σύστημα, για να μην σπάσει ξανά το VMWare Workstation.

Θέλω να σημειώσω αμέσως ότι όλα λειτουργούν καλά από έναν απλό χρήστη, τα προγράμματα εγκατάστασης θα ζητήσουν κλιμάκωση των δικαιωμάτων όταν το χρειάζονται, αλλά όλες οι εντολές στη γραμμή εντολών και τα σενάρια εκτελούνται από τον τρέχοντα χρήστη.

Ως αποτέλεσμα, η ομάδα:

$ docker-machine create --driver=vmwareworkstation dev

από το Boot2Docker, θα δημιουργηθεί ένα dev virtualka μέσα στο οποίο θα είναι το Docker.

Αυτή η εικονική μηχανή μπορεί να συνδεθεί στο VMWare Workstation GUI ανοίγοντας το αντίστοιχο αρχείο vmx. Αλλά αυτό δεν είναι απαραίτητο, επειδή το VSCode θα πρέπει τώρα να εκτελέσει ένα σενάριο PowerShell (για κάποιο λόγο, το docker-machine και το docker-machine-driver-vmwareworkstation κατέληξαν στον φάκελο bin):

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

Το VSCode θα ανοίξει για να λειτουργήσει με κώδικα στον τοπικό υπολογιστή και το docker στην εικονική μηχανή. συνδέω Docker για τον κώδικα του Visual Studio σας επιτρέπει να διαχειρίζεστε εύκολα τα κοντέινερ σε μια εικονική μηχανή χωρίς να μπείτε στην κονσόλα.

Δυσκολίες:

Στη διαδικασία δημιουργίας docker-machine, η διαδικασία κρεμάστηκε για μένα:

Waiting for SSH to be available...

Docker και VMWare Workstation στον ίδιο υπολογιστή Windows

Και μετά από λίγο τελείωσε με υπερβολικές προσπάθειες δημιουργίας σύνδεσης με την εικονική μηχανή.

Είναι όλα σχετικά με την πολιτική πιστοποιητικών. Όταν δημιουργείτε μια εικονική μηχανή, θα έχετε έναν κατάλογο ~.dockermachinemachinesdev σε αυτόν τον κατάλογο θα υπάρχουν αρχεία πιστοποιητικών για σύνδεση μέσω SSH: id_rsa, id_rsa.pub. Το OpenSSH μπορεί να αρνηθεί να τα χρησιμοποιήσει επειδή πιστεύει ότι έχουν προβλήματα άδειας. Μόνο το docker-machine δεν θα σας πει τίποτα για αυτό, αλλά απλά θα επανασυνδεθεί μέχρι να βαρεθεί.

λύση: Μόλις ξεκινήσει η δημιουργία μιας νέας εικονικής μηχανής, πηγαίνουμε στον κατάλογο ~ .dockermachinemachinesdev και αλλάζουμε τα δικαιώματα στα καθορισμένα αρχεία, ένα κάθε φορά.

Το αρχείο πρέπει να ανήκει στον τρέχοντα χρήστη, μόνο ο τρέχων χρήστης και το SYSTEM έχουν πλήρη πρόσβαση, όλοι οι άλλοι χρήστες, συμπεριλαμβανομένης της ομάδας διαχειριστών και των ίδιων των διαχειριστών, πρέπει να διαγραφούν.

Μπορεί επίσης να υπάρχουν προβλήματα με τη μετατροπή απόλυτων μονοπατιών από τα Windows σε μορφή Posix και τη δέσμευση τόμων που περιέχουν συμβολικούς συνδέσμους. Αλλά αυτό είναι μια άλλη ιστορία.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο