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 Knowledge Base จัดการ Windows Defender Credential Guard. วิธีแก้ไขคือปิดการใช้งาน Defender Credential Guard (ข้อ 4 ของส่วน Disable 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 จะกลับมาทำงานตามปกติ และเราจะพบว่าตัวเองอยู่ที่เดิมก่อนติดตั้งนักเทียบท่า

ฉันไม่พบวิธีแก้ปัญหาในการกระทบยอด Hyper-V และ VMWare Workstation ฉันหวังว่าพวกเขาจะเป็นเพื่อนกันในเวอร์ชันใหม่

อีกวิธีหนึ่ง

ฉันติด VMWare Workstation มานานแล้วด้วยจุดประสงค์ต่างๆ ฉันพยายามเลิกใช้ Hyper-V และ VirtualBox แต่ฟังก์ชันไม่ตอบสนองงานของฉัน ดังนั้นฉันจึงนั่งอยู่จนถึงทุกวันนี้ ปรากฎว่ามีวิธีแก้ปัญหาในการหาเพื่อน VMWare, Docker และ VSCode ในสภาพแวดล้อมการทำงานเดียว

เครื่องเทียบท่า - อนุญาตให้คุณเรียกใช้ Docker Engine บนโฮสต์เสมือนและเชื่อมต่อกับมันทั้งจากระยะไกลและในเครื่อง และมีไดรเวอร์ที่เข้ากันได้กับ VMWare Workstation สำหรับมัน เชื่อมโยงไปยัง GitHub

ฉันจะไม่บอกคำแนะนำในการติดตั้งซ้ำ โดยเฉพาะรายการส่วนผสม:

  1. กล่องเครื่องมือนักเทียบท่า (เครื่องเทียบท่า รวมอยู่ด้วย)
  2. ไดร์เวอร์ Docker Machine VMware Workstation
  3. DockerDesktop

ใช่ โชคไม่ดีที่ 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 จะเปิดขึ้นเพื่อทำงานร่วมกับโค้ดบนเครื่องโลคัลและนักเทียบท่าในเครื่องเสมือน เสียบเข้าไป นักเทียบท่าสำหรับรหัส Visual Studio ช่วยให้คุณจัดการคอนเทนเนอร์ในเครื่องเสมือนได้อย่างสะดวกโดยไม่ต้องเข้าไปในคอนโซล

ความยากลำบาก:

ในกระบวนการสร้าง docker-machine กระบวนการหยุดทำงานสำหรับฉัน:

Waiting for SSH to be available...

Docker และ VMWare Workstation บนเครื่อง Windows เครื่องเดียวกัน

และหลังจากนั้นไม่นานก็จบลงด้วยความพยายามมากเกินไปในการสร้างการเชื่อมต่อกับเครื่องเสมือน

ทุกอย่างเกี่ยวกับนโยบายใบรับรอง เมื่อสร้างเครื่องเสมือน คุณจะมีไดเร็กทอรี ~.dockermachinemachinesdev ในไดเร็กทอรีนี้จะมีไฟล์ใบรับรองสำหรับเชื่อมต่อผ่าน SSH: id_rsa, id_rsa.pub OpenSSH อาจปฏิเสธที่จะใช้เนื่องจากคิดว่ามีปัญหาเรื่องการอนุญาต เครื่องนักเทียบท่าเท่านั้นที่จะไม่บอกอะไรคุณเกี่ยวกับเรื่องนี้ แต่จะเชื่อมต่อใหม่จนกว่าจะเบื่อ

การแก้ปัญหา: ทันทีที่การสร้างเครื่องเสมือนใหม่เริ่มต้นขึ้น ให้ไปที่ไดเร็กทอรี ~ .dockermachinemachinesdev และเปลี่ยนสิทธิ์ในไฟล์ที่ระบุทีละไฟล์

ไฟล์ต้องเป็นของผู้ใช้ปัจจุบัน เฉพาะผู้ใช้ปัจจุบันและ SYSTEM เท่านั้นที่มีสิทธิ์เข้าถึงแบบเต็ม ผู้ใช้อื่นทั้งหมด รวมถึงกลุ่มผู้ดูแลระบบและผู้ดูแลระบบเอง จะต้องถูกลบ

นอกจากนี้ยังอาจมีปัญหาในการแปลงพาธสัมบูรณ์จาก Windows เป็นรูปแบบ Posix และปริมาณการเชื่อมโยงที่มีลิงก์สัญลักษณ์ แต่นั่นเป็นอีกเรื่องหนึ่ง

ที่มา: will.com

เพิ่มความคิดเห็น