เป็นไปได้ไหมที่นักเทียบท่าทำงานใน vmware?


24

ฉันเรียกใช้ vmware เวิร์กสเตชันสำหรับความต้องการ dev ของฉันและต้องรักษา VMs ที่แตกต่างกันสำหรับสภาพแวดล้อมที่แตกต่างกัน

ดูเหมือนว่านักเทียบท่าจะอนุญาตให้ใช้สภาพแวดล้อมที่แตกต่างในตู้คอนเทนเนอร์ได้

  1. ภายใน Windows 10 x64 VM ของฉันฉันสามารถรันนักเทียบท่าและใช้อิมเมจและคอนเทนเนอร์ต่าง ๆ เพื่อพัฒนาสร้างและทดสอบโค้ดของฉันได้หรือไม่ (โปรดจำไว้ว่าฉันใช้สภาพแวดล้อมการพัฒนาของฉันใน VMware Workstation ในขณะที่นักเทียบท่าใช้ VirtualBox)

  2. ฉันจะจัดส่ง / นำแอพของฉัน (รหัส + ฐานข้อมูล + เว็บ api + ..... ) นี้ไปสู่การผลิตได้อย่างไร เครื่องที่ใช้ในการผลิตจำเป็นต้องรันนักเทียบท่าหรือไม่?

กรุณาช่วยชี้แจง

ปรับปรุง

โดย VMWare ฉันหมายถึง VMWare เวิร์กสเตชัน

คำตอบ:


14

ใช่เป็นไปได้ทั้งหมดที่จะเรียกใช้ Docker ใน VM นักเทียบท่าเป็นโซลูชันการจำลองเสมือนแบบใช้แสงซึ่งไม่ได้จำลองสภาพฮาร์ดแวร์ให้ดีดังนั้นคุณจะไม่ได้รับผลกระทบจากปัญหาทั่วไปสำหรับ VM ที่ซ้อนกัน

การผูกพอร์ตอาจเป็นเรื่องยุ่งยากเล็กน้อยเนื่องจากคุณจะต้องเชื่อมต่อ dev-env VM ของคุณใน VMware กับ Docker VM ใน VirtualBox

คุณอาจพบปัญหาหากคุณต้องการเปิดเผยโฟลเดอร์ของโฮสต์ไปยังบริการในคอนเทนเนอร์ Docker ระบบไฟล์ของ Windows นั้นมีข้อ จำกัด เมื่อเปรียบเทียบกับระบบ Linux ในแง่ของสิทธิ์อนุญาตและบริการบางประเภทไม่ชอบมัน (ปัญหานี้ไม่ได้เฉพาะนักเทียบท่า)

โดยทั่วไปแอปของคุณไม่ได้ล็อคอยู่ที่ Docker ในการผลิต บริการเชื่อมต่อสื่อสารกับโลกผ่านเครือข่ายไม่แตกต่างจากบริการปกติทั่วไป อย่างไรก็ตามแอพที่ออกแบบโดยคำนึงถึงนักเทียบท่า (หรือโดยทั่วไปแล้วคือคลาวด์) อาจมีความยืดหยุ่นมากกว่าในเรื่องความล้มเหลวและง่ายต่อการบำรุงรักษา


6

บล็อกนี้พูดถึงวิธีใช้ Docker บน Windows ด้วย VMWare Workstation คุณสามารถใช้ Windows 7 ได้

https://stefanscherer.github.io/yes-you-can-docker-on-windows-7/

ก่อนติดตั้งตัวจัดการแพคเกจ Chocolatey สำหรับ windows (นี่คือคำสั่งแบบบรรทัดเดียว)

@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

จากนั้นติดตั้ง Docker เพื่อใช้ VMWare เวิร์กสเตชัน

choco install -y docker  
choco install -y docker-machine  
choco install -y docker-machine-vmwareworkstation  

สร้าง vm เริ่มต้น

docker-machine --native-ssh create -d vmwareworkstation default  

ตั้งค่าตัวแปรสภาพแวดล้อมของคุณ

docker-machine env | iex

ตอนนี้คุณพร้อมที่จะเริ่มแล้ว


ยอดเยี่ยม ขอบคุณที่แบ่งปันสิ่งนี้ PS: บรรทัดสุดท้ายสำหรับ PowerShell โดยไม่มี "| iex" ที่จะทำงานใน cmd
Dmitry Gusarov

Chocolatey เป็นสิ่งใหม่สำหรับฉันนี่เป็นจุดเริ่มต้นที่ดี: hanselman.com/blog/…
ccook

1
ในกรณีที่คนอื่นลองโดยไม่อ่านลิงก์คำสั่ง "สร้าง vm เริ่มต้น" ควรเป็น: docker-machine --native-ssh create -d vmwareworkstation default(หมายเหตุหายไป "-")
Neil

2
  1. ใช่คุณสามารถเรียกใช้นักเทียบท่าบน Windows Windows บน VMWare ก็ใช้งานได้เช่นกัน เรารันนักเทียบท่าบนเซิร์ฟเวอร์ Linux บน VMWare
  2. สิ่งที่ฉลาดที่สุดคือการมีเครื่องเทียบท่าบนเครื่องคุณด้วย แต่ก็เป็นไปได้ที่จะคัดลอกข้อมูลของคุณออกจากตู้คอนเทนเนอร์ ฉันไม่แนะนำว่า
    คุณสามารถใช้docker saveเพื่อบันทึกภาพนักเทียบท่าของคุณเป็นไฟล์
    ฉันคิดว่ามันคุ้มค่าที่จะกล่าวถึงว่าไม่แนะนำให้ใช้แอพพลิเคชั่นหลายตัวในคอนเทนเนอร์เดียวกันและไม่แนะนำให้เก็บข้อมูลไว้ในคอนเทนเนอร์ของคุณคุณควรใช้วอลลุ่มนั้น

ขอบคุณสำหรับคำตอบของคุณ แต่โปรดอธิบายว่าคุณพูดว่า "Windows บน VMWare ใช้งานได้" แต่คุณหมายถึง "Docker บน VMWare ใช้งานได้หรือไม่"
Hamza Ahmed Zia

@HamzaAhmedZia "VMWare" อะไรกันแน่? ESXi? เวิร์คสเตชั่? เจาะจงและแก้ไขคำถามของคุณ เวิร์กสเตชันมีอยู่บน Linux และ Windows เท่านั้น
Ramhound

@Ramhound ฉันหมายถึงเวิร์กสเตชัน อัปเดตคำถาม
Hamza Ahmed Zia

@HamzaAhmedZia ดังนั้นในบริบทของ Workstation ผู้เขียนคำตอบนี้บ่งชี้ว่าคุณสามารถเรียกใช้ Docker ภายใน Windows VMWare Workstation VM
Ramhound

@Mikael คำแนะนำสำหรับการจัดส่งไปยังการผลิตของคุณคืออะไรเพราะคุณบอกว่าคุณไม่แนะนำให้คัดลอกข้อมูลออกจากตู้คอนเทนเนอร์?
Hamza Ahmed Zia

0

มีความแตกต่างที่สำคัญระหว่างโฮสต์นักเทียบท่า (Linux หรือ Windows):

  • โฮสต์ลินุกซ์ไม่ต้องใช้เทคโนโลยี virtualization ใด ๆ ดังนั้นในเวิร์กสเตชัน Vmware คุณสามารถติดตั้งมาตรฐานลินุกซ์แล้วเครื่องยนต์นักเทียบท่าและเรียกใช้ภาชนะใด ๆ ได้โดยไม่มีปัญหา
  • โฮสต์ของ Windowsมีความต้องการที่แตกต่างกันเพราะภายใต้ฝากระโปรงจะสร้างเทคโนโลยี Hyper V ลินุกซ์ VM (รายละเอียดในhttps://rancher.com/the-similarities-and-differences-between-windows-and-linux-containers/ )

ดังนั้นบนโฮสต์ Windows docker ใน Vmware Workstation (บน Windows จริงของคุณ) คุณมี HyperV Linux VM ที่ซ้อนกัน! นั่นไม่ใช่ปัญหาใหญ่โปรดใช้ความระมัดระวังในการเปิดใช้งานระบบเสมือนจริงแบบซ้อน

François


จุดนั้นเกี่ยวกับ Windows ที่โฮสต์ HyperV VM ไม่ถูกต้องหากเรียกใช้ Docker สำหรับ Windows ในโหมด Windows Container และใช้ LCoW แบบเคียงข้างกัน มันมีปัญหาอื่น ๆ แต่บทความที่เชื่อมโยงท่าทางเกี่ยวกับความไม่เชื่อเรื่องพระเจ้าของ Docker ที่ใช้ระบบปฏิบัติการโฮสต์นั้นเป็นเรื่องสั้นที่ดีที่สุดตามที่ Moby Project กำลังมุ่งหน้าไปที่ Windows container docker ใน Win 10 แต่ฉันเพิ่งจมหนึ่งสัปดาห์ในการค้นพบว่า ขอบเลือดยังคงวาดเลือดและไม่ถอยลงไปสู่ระดับอันตรายของระดับแนวหน้าเท่านั้น ณ จุดนี้ดูเหมือนว่าอีกหกเดือนจนกว่ามันจะพร้อมเป็นไดรเวอร์รายวัน
Tetsujin no Oni

0

การเรียกใช้คอนเทนเนอร์นักเทียบท่ากำลังนำปัญหาการผูกพอร์ต .. !

เป็นการดีที่จะรันนักเทียบท่าภายในเครื่องเสมือนจริง ... สถาปัตยกรรมสำหรับการอ้างอิงของคุณ

Host OS -> VirtualMachine -> Hypervisor -> Server OS -> Docker

เป็นการปฏิบัติที่ดี .. :)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.