งานนั้นง่ายมาก วาง 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.
งานหยุดแล้ว ต้องรีบซ่อมแซม
จากกูเกิลพบว่าข้อผิดพลาดนี้เกิดขึ้นเนื่องจากความเข้ากันไม่ได้ของ VMWare Workstation และ Hyper-V ในเครื่องเดียวกัน ทราบปัญหาแล้วและมีโซลูชัน VMWare อย่างเป็นทางการเช่นนี้
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 Machine VMware Workstation - 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 จะเปิดขึ้นเพื่อทำงานร่วมกับโค้ดบนเครื่องโลคัลและนักเทียบท่าในเครื่องเสมือน เสียบเข้าไป
ความยากลำบาก:
ในกระบวนการสร้าง docker-machine กระบวนการหยุดทำงานสำหรับฉัน:
Waiting for SSH to be available...
และหลังจากนั้นไม่นานก็จบลงด้วยความพยายามมากเกินไปในการสร้างการเชื่อมต่อกับเครื่องเสมือน
ทุกอย่างเกี่ยวกับนโยบายใบรับรอง เมื่อสร้างเครื่องเสมือน คุณจะมีไดเร็กทอรี ~.dockermachinemachinesdev ในไดเร็กทอรีนี้จะมีไฟล์ใบรับรองสำหรับเชื่อมต่อผ่าน SSH: id_rsa, id_rsa.pub OpenSSH อาจปฏิเสธที่จะใช้เนื่องจากคิดว่ามีปัญหาเรื่องการอนุญาต เครื่องนักเทียบท่าเท่านั้นที่จะไม่บอกอะไรคุณเกี่ยวกับเรื่องนี้ แต่จะเชื่อมต่อใหม่จนกว่าจะเบื่อ
การแก้ปัญหา: ทันทีที่การสร้างเครื่องเสมือนใหม่เริ่มต้นขึ้น ให้ไปที่ไดเร็กทอรี ~ .dockermachinemachinesdev และเปลี่ยนสิทธิ์ในไฟล์ที่ระบุทีละไฟล์
ไฟล์ต้องเป็นของผู้ใช้ปัจจุบัน เฉพาะผู้ใช้ปัจจุบันและ SYSTEM เท่านั้นที่มีสิทธิ์เข้าถึงแบบเต็ม ผู้ใช้อื่นทั้งหมด รวมถึงกลุ่มผู้ดูแลระบบและผู้ดูแลระบบเอง จะต้องถูกลบ
นอกจากนี้ยังอาจมีปัญหาในการแปลงพาธสัมบูรณ์จาก Windows เป็นรูปแบบ Posix และปริมาณการเชื่อมโยงที่มีลิงก์สัญลักษณ์ แต่นั่นเป็นอีกเรื่องหนึ่ง
ที่มา: will.com