Mungkinkah ada docker yang berjalan di dalam vmware?

24

Saya menjalankan workstation vmware untuk kebutuhan dev saya dan harus memelihara VM yang berbeda untuk lingkungan yang berbeda.

Docker tampaknya memungkinkan menjalankan lingkungan yang berbeda dalam wadah

  1. Di dalam VM Windows 10 x64 saya dapatkah saya menjalankan buruh pelabuhan dan menggunakan berbagai gambar dan wadah untuk mengembangkan, membuat, dan menguji kode saya? (Ingat saya menjalankan lingkungan dev saya di VMware Workstation sementara buruh pelabuhan menggunakan VirtualBox)

  2. Bagaimana cara mengirim / membawa aplikasi ini (kode + basis data + web api + .....) ke produksi? Apakah mesin produksi harus menjalankan buruh pelabuhan dengan baik?

Tolong bantu klarifikasi.

Memperbarui

Maksud saya VMWare adalah workstation VMWare pro.

Hamza Ahmed Zia
sumber

Jawaban:

14

Ya , sangat mungkin untuk menjalankan Docker di VM. Docker adalah solusi virtualisasi ringan, ini tidak memvirtualisasikan perangkat keras sehingga Anda tidak akan terpengaruh oleh masalah khas untuk VM bersarang.

Port binding mungkin agak rumit, karena Anda harus menghubungkan VM dev-env Anda di VMware dengan Docker VM di VirtualBox.

Anda juga dapat mengalami masalah jika Anda ingin mengekspos folder host ke layanan dalam wadah Docker. Sistem file Windows terbatas dibandingkan dengan Linux dalam hal perincian izin dan beberapa layanan tidak menyukainya. (masalah ini tidak khusus untuk Docker)

Secara umum, aplikasi Anda tidak dikunci ke Docker dalam produksi. Layanan Dockerized berkomunikasi dengan dunia melalui jaringan, tidak berbeda dari apa yang biasanya dilakukan layanan reguler. Namun, aplikasi yang dirancang dengan Docker (atau, lebih umum, cloud) dalam pikiran mungkin lebih tahan terhadap kegagalan dan lebih mudah untuk dipelihara.

gronostaj
sumber
6

Blog ini berbicara tentang bagaimana tepatnya menggunakan Docker di Windows dengan VMWare Workstation. Anda bahkan dapat menggunakan Windows 7.

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

Pertama-tama instal manajer paket Chocolatey untuk windows (ini adalah perintah satu baris)

@"%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"

kemudian instal Docker untuk menggunakan VMWare workstation

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

Buat vm default

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

Tetapkan variabel lingkungan Anda

docker-machine env | iex

Sekarang Anda siap untuk memulai.

ditenagai uap
sumber
Luar biasa! Terima kasih telah berbagi ini. PS: Baris terakhir adalah untuk PowerShell, tanpa "| iex" yang akan bekerja dalam cmd
Dmitry Gusarov
Chocolatey adalah baru bagi saya, ini adalah titik awal yang bagus: hanselman.com/blog/…
ccook
1
Kalau-kalau ada orang lain yang mencoba ini tanpa membaca tautan, perintah "Buat vm default" seharusnya: docker-machine --native-ssh create -d vmwareworkstation default(Catatan hilang "-")
Neil
2
  1. Ya, Anda dapat menjalankan buruh pelabuhan di Windows. Windows di VMWare juga berfungsi. Kami menjalankan buruh pelabuhan di server Linux di VMWare.
  2. Yang paling pintar adalah memiliki buruh pelabuhan pada mesin produksi Anda juga, tetapi akan mungkin untuk menyalin data Anda dari kontainer. Saya tidak merekomendasikan itu.
    Anda dapat menggunakan docker saveuntuk menyimpan gambar buruh pelabuhan Anda ke file.
    Saya pikir patut disebutkan bahwa tidak disarankan menjalankan beberapa aplikasi di dalam wadah yang sama dan tidak disarankan untuk menyimpan data di dalam wadah Anda, Anda harus menggunakan volume untuk itu.
Mikael Kjær
sumber
Terima kasih atas jawaban Anda tetapi tolong jelaskan Anda mengatakan "Windows on VMWare juga berfungsi" tetapi apakah maksud Anda "Docker on VMWare juga berfungsi"?
Hamza Ahmed Zia
@HamzaAhmedZia "VMWare" Apa sebenarnya? ESXi? Workstation? Spesifik dan edit pertanyaan Anda. Workstation hanya ada di Linux dan Windows.
Ramhound
@ Ramhound Maksudku Workstation. Pertanyaan yang diperbarui
Hamza Ahmed Zia
@ HamzaAhmedZia sehingga dalam konteks Workstation, penulis jawaban ini menunjukkan, bahwa Anda dapat menjalankan Docker di dalam Windows VMWare Workstation VM.
Ramhound
@Mikael Apa rekomendasi Anda untuk pengiriman ke produksi karena Anda mengatakan Anda tidak merekomendasikan untuk menyalin data dari kontainer?
Hamza Ahmed Zia
0

Ada perbedaan besar antara host buruh pelabuhan (Linux atau Windows):

Jadi pada host buruh pelabuhan Windows di Vmware Workstation (di Windows fisik Anda), Anda memiliki HyperV Linux VM! Itu bukan masalah besar, hanya hati-hati untuk mengaktifkan virtualisasi bersarang.

François

François YACOB
sumber
Titik itu tentang Windows hosting HyperV VM salah jika menjalankan Docker untuk Windows dalam mode Windows Container dan menggunakan LCoW berdampingan. Ini memiliki masalah lain, tetapi artikel-artikel terkait yang berpandangan tentang agnostisisme Docker berdasarkan OS host adalah pandangan pendek terbaik berdasarkan di mana Moby Project sedang menuju dengan Windows docker berbasis kontainer pada Win 10. Tetapi saya hanya tenggelam seminggu untuk menemukan bahwa tepi yang berdarah masih menarik darah, dan tidak mundur ke tingkat bahaya hanya terdepan. Pada titik ini sepertinya enam bulan lagi sampai siap sebagai pengemudi harian.
Tetsujin no Oni
0

Menjalankan kontainer Docker membawa masalah pengikatan port ..!

Apakah ini praktik yang baik untuk menjalankan buruh pelabuhan di dalam mesin Virtual .. Arsitektur untuk referensi Anda

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

Apakah ini latihan yang bagus .. :)

Ram Manikandan
sumber