Pro dan kontra menggunakan wadah Windows, bukan wadah Linux untuk Docker?

37

Saya menginstal Docker untuk Windows (CE) pada Windows 10 dan layar pertama bertanya kepada saya:

[] Gunakan wadah Windows alih-alih wadah Linux (ini dapat diubah setelah instalasi)

Ini tampaknya merupakan keputusan penting, namun dokumentasi Docker , FAQ , dan tutorial Windows container tidak memberikan informasi tentang mengapa saya dapat memilih salah satu dari yang lain.

Akan bermanfaat jika memiliki gambaran obyektif tentang konsekuensi pilihan ini:

  • Apakah satu opsi lebih cepat dari yang lain?
  • Apakah keputusan tersebut mempengaruhi penggunaan sumber daya sistem (RAM, CPU)?
  • Bisakah saya menjalankan gambar yang sama di kedua jenis?
  • Apakah yang satu lebih aman daripada yang lain?

Perbedaan lain yang mungkin membantu saya mencapai kesimpulan akan sangat disambut baik.

Duncan Jones
sumber
Jawabannya bukan berdasarkan opini. Dan itu diterima. Jadi tidak perlu menutup yang ini.
Nils

Jawaban:

19

Anda HARUS menggunakan host windows untuk wadah windows, namun Anda dapat menggunakan host Linux atau host Windows untuk kontainer Linux. Sejak April 2018 Anda bahkan dapat menjalankan keduanya secara paralel .

Apakah satu opsi lebih cepat dari yang lain?

Tidak, lebih cepat dari apa?

Apakah keputusan tersebut mempengaruhi penggunaan sumber daya sistem (RAM, CPU)?

Windows menggunakan lebih banyak sumber daya daripada Linux - Windows Nano sekecil yang didapatnya

Bisakah saya menjalankan gambar yang sama di kedua jenis?

Anda dapat menjalankan aplikasi .NET dalam wadah mono tetapi Anda tidak dapat memulai wadah windows pada host Linux dan sebaliknya - itu tidak sama dengan virtualisasi

Apakah yang satu lebih aman daripada yang lain?

Lagi - lebih aman apa? Tidak. Keduanya menjalankan Docker asli sehingga tidak seperti hyper-v vs VMware dan lebih seperti Linux vs Windows sehingga semuanya tergantung pada apa yang akan Anda jalankan .net, python, java, ruby ​​dll.

Sum1sAdmin
sumber
2
Kedua ini. Bacaan melengkapi jawaban ini mengandungerjournal.com/2016/10/28/...
A.Newgate
4
Jadi jika saya memilih untuk menggunakan wadah Linux, Docker akan menjalankan VM Linux Hyper-V untuk menjalankan wadah saya, jika tidak, ia akan menjalankan wadah Windows secara asli? Dan saya tidak bisa menjalankan kedua jenis kontainer secara bersamaan?
Duncan Jones
1
buruh pelabuhan untuk windows 10 memungkinkan Anda untuk melakukan ini - tetapi dalam produksi Anda akan memiliki banyak buruh pelabuhan dengan host Linux dan Windows
Sum1sAdmin
Docker didasarkan pada lxc (Linux) - ia akan menggunakan kernel yang sama dengan host-Docker. Jika Anda memulai windows di lxc, ia harus melakukan virtualisasi atau meniru kemenangan. Tidak yakin apakah hal yang sama berlaku untuk win-docker, karena win mendukung linux.
Nils
1
@DuncanJones, hanya 3 hari setelah Anda bertanya ada posting blog di MSDN yang menjelaskan bahwa Anda sekarang BISA menjalankan kontainer Windows dan Linux secara paralel.
Jonas Heidelberg