TL;DR:
T: Bisakah wadah Windows berjalan di Linux?
J: Tidak. Mereka tidak bisa.
Penampung menggunakan sumber daya dan driver sistem operasi yang mendasarinya, sehingga penampung Windows hanya dapat berjalan di Windows, dan penampung Linux hanya dapat berjalan di Linux.
T: Tapi bagaimana dengan Docker untuk Windows? Atau solusi berbasis VM lainnya?
J: Docker untuk Windows memungkinkan Anda menyimulasikan menjalankan Linux kontainer di Windows , tetapi di balik terpal, VM Linux dibuat, jadi wadah Linux tetap berjalan di Linux, dan wadah Windows tetap berjalan di Windows .
Bonus:Baca artikel yang sangat bagus ini tentang menjalankan wadah buruh pelabuhan Linux di Windows.
T: Jadi, apa yang harus saya lakukan dengan aplikasi .NET Framework 462, jika saya ingin menjalankannya dalam wadah?
J: Tergantung. Pertimbangkan rekomendasi berikut:
-
Jika memungkinkan, pindah ke .NET Core. Karena .NET Core mendukung sebagian besar fitur utama .NET Framework, dan .NET Framework 4.8 akan menjadi versi terakhir dari .NET framework
-
Jika Anda tidak dapat bermigrasi ke .NET Core - Seperti yang disebutkan @Sebastian - Anda dapat mengonversi pustaka Anda ke .NET Standard, dan memiliki dua versi aplikasi - satu di .NET Framework 4.6.2, dan satu lagi di .NET Core - ini adalah tidak selalu jelas. Visual Studio mendukungnya dengan cukup baik (dengan multi-penargetan), tetapi beberapa dependensi memerlukan perhatian ekstra.
-
(Kurang disarankan) Dalam beberapa kasus, Anda dapat menjalankan wadah Windows. Wadah Windows menjadi semakin matang, dengan dukungan yang lebih baik di platform seperti Kubernetes. Namun untuk dapat menjalankan kode .NET Framework, Anda masih harus menjalankan image dasar "Server Core", yang menempati sekitar 1,4 GB. Dalam kasus yang jarang terjadi, Anda dapat memigrasikan kode ke .NET Core, tetapi tetap berjalan di server Windows Nano, dengan ukuran gambar 95 MB.
Meninggalkan juga pembaruan lama untuk sejarah
Pembaruan 2:08.2018
Jika Anda menggunakan Docker-untuk-Windows, sekarang Anda dapat menjalankan container Windows dan Linux secara bersamaan :Menjalankan Docker Windows dan Linux Containers Secara Bersamaan
Bonus: Tidak terkait langsung dengan pertanyaan, tetapi sekarang Anda tidak hanya dapat menjalankan wadah Linux itu sendiri, tetapi juga orkestra seperti Kubernetes:Kubernetes Kini Tersedia di Saluran Stabil Desktop Docker
Diperbarui pada 2018:
Jawaban asli secara umum benar, TAPI beberapa bulan lalu, Docker menambahkan fitur eksperimental LCOW (repositori GitHub resmi).
Dari postingan ini:
Bukankah Docker untuk Windows sudah menjalankan wadah Linux? Benar. Docker untuk Windows dapat menjalankan wadah Linux atau Windows, dengan dukungan untuk wadah Linux melalui VM Hyper-V Moby Linux (sejak Docker untuk Windows 17.10, VM ini didasarkan pada LinuxKit).
Penyiapan untuk menjalankan wadah Linux dengan LCOW jauh lebih sederhana daripada arsitektur sebelumnya tempat VM Linux Hyper-V menjalankan Linux Dockerdaemon, beserta semua wadah Anda. Dengan LCOW, daemon Docker berjalan sebagai proses Windows (sama seperti saat menjalankan Docker Windowscontainers), dan setiap kali Anda memulai wadah Linux, Docker meluncurkan hypervisor Hyper-V minimal yang menjalankan VM dengan kernel Linux, runc, dan proses wadah berjalan di atas.
Karena hanya ada satu daemon Docker, dan karena daemon tersebut sekarang berjalan di Windows, sayaakan segera dapat menjalankan kontainer Windows dan LinuxDocker secara berdampingan, di namespace jaringan yang sama . Ini akan membuka banyak skenario pengembangan dan produksi yang menarik untuk pengguna Docker di Windows.
Asli:
Seperti disebutkan dalam komentar oleh @PanagiotisKanavos, kontainer bukan untuk virtualisasi, dan mereka menggunakan sumber daya mesin host . Akibatnya, untuk saat ini wadah Windows tidak dapat berjalan "sebagaimana adanya" di mesin Linux.
Tapi - Anda dapat melakukannya dengan menggunakan VM - seperti yang berfungsi di Windows. Anda dapat menginstal VM Windows di host Linux Anda, yang memungkinkan untuk menjalankan kontainer Windows.
Dengan itu, IMHO menjalankannya seperti ini dalam produksi lingkungan tidak akan menjadi ide terbaik.
Selain itu, jawaban ini memberikan detail lebih lanjut.
Tidak, Anda tidak dapat menjalankan wadah Windows secara langsung di Linux.
Namun Anda dapat menjalankan Linux di Windows.
Windows Server 2016 dikemas dengan citra dasar OS Ubuntu (setelah paket layanan beta September 2016 ). Itulah alasan Anda dapat menjalankan Linux di Windows dan bukan sebaliknya. Lihat di sini. Akhirnya, Wadah Linux Dapat Berjalan di Windows dengan LinuxKit Docker
Anda dapat beralih antara wadah OS Linux dan Windows dengan mengeklik kanan Docker di menu baki.