Pembaruan3: 06.2019
Beberapa komentar mengatakan bahwa jawabannya tidak jelas, saya akan mencoba mengklarifikasi.
TL; DR:
T: Dapatkah kontainer Windows berjalan di Linux?
A: Tidak. Mereka tidak bisa.
Wadah menggunakan sumber daya dan driver Sistem Operasi yang mendasarinya, sehingga wadah Windows hanya dapat berjalan di Windows, dan wadah Linux dapat berjalan di Linux saja.
T: Tapi bagaimana dengan Docker untuk Windows? Atau solusi berbasis VM lainnya?
A: Docker untuk Windows memungkinkan Anda untuk mensimulasikan menjalankan wadah Linux di Windows , tetapi di bawah tenda Linux VM dibuat, sehingga wadah Linux masih berjalan di Linux, dan wadah Windows berjalan di Windows .
Bonus: Baca artikel yang sangat bagus ini tentang menjalankan wadah docker Linux di Windows.
T: Jadi, apa yang harus saya lakukan dengan aplikasi .Net Framework 462, jika saya ingin menjalankan dalam wadah?
A: Tergantung. Berikut beberapa rekomendasi:
- Jika memungkinkan - pindah ke .Net Core. Sejak .Net Core menghadirkan dukungan untuk 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 perpustakaan Anda ke .Net Standard, dan memiliki 2 versi aplikasi - satu di .Net Framework 4.6.2, dan satu di .Net Core - tidak selalu jelas, Visual Studio mendukungnya dengan cukup baik (dengan multi-penargetan), tetapi beberapa dependensi memerlukan perawatan ekstra.
(Kurang disarankan) Dalam beberapa kasus, Anda dapat menjalankan wadah windows. Wadah Windows menjadi semakin dewasa, dengan dukungan yang lebih baik di platform seperti Kubernetes. Tetapi untuk dapat menjalankan kode .Net Framework, Anda masih harus menjalankan gambar dasar "Server Core", yang menempati sekitar 1,4 GB. Dalam kasus langka yang sama, Anda dapat memigrasi kode Anda ke .Net Core, tetapi masih berjalan di server Windows Nano, dengan ukuran gambar 95 MB.
Meninggalkan juga pembaruan lama untuk riwayat
Pembaruan2: 08.2018
Jika Anda menggunakan Docker-for-Windows, sekarang Anda dapat menjalankan kedua wadah windows dan linux secara bersamaan : https://blogs.msdn.microsoft.com/premier_developer/2018/04/20/running-docker-windows- dan-linux-container-secara bersamaan /
Bonus: Tidak terkait langsung dengan pertanyaan, tetapi Anda sekarang dapat menjalankan tidak hanya wadah linux itu sendiri, tetapi juga orkestra seperti kubernetes: https://blog.docker.com/2018/07/kubernetes-is-now-available-in -docker-desktop-stable-channel /
Diperbarui pada 2018:
Jawaban asli secara umum benar, TETAPI beberapa bulan yang lalu, buruh pelabuhan menambahkan fitur eksperimental LCOW ( repositori github resmi ).
Dari pos ini :
Bukankah Docker untuk Windows sudah menjalankan wadah Linux? Betul sekali. Docker untuk Windows dapat menjalankan Linux atau wadah Windows, dengan dukungan untuk wadah Linux melalui Hyper-V Moby Linux VM (pada Docker untuk Windows 17.10 VM ini didasarkan pada LinuxKit).
Pengaturan untuk menjalankan wadah Linux dengan LCOW jauh lebih sederhana dari arsitektur sebelumnya di mana VM Hyper-V Linux menjalankan daemon Linux Docker, beserta semua wadah Anda. Dengan LCOW, daemon Docker berjalan sebagai proses Windows (sama seperti ketika menjalankan Docker Windows container), dan setiap kali Anda memulai container Linux Docker meluncurkan hypervisor Hyper-V minimal yang menjalankan VM dengan kernel Linux, runc, dan proses container berjalan di atas.
Karena hanya ada satu daemon Docker, dan karena daemon itu sekarang berjalan di Windows, saya akan segera dapat menjalankan kontainer Windows dan Linux Docker secara berdampingan, dalam ruang nama 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 dari mesin host . Akibatnya, untuk saat ini windows container tidak dapat menjalankan "apa adanya" pada mesin linux.
Tapi - Anda bisa melakukannya dengan menggunakan VM - karena berfungsi di windows. Anda dapat menginstal windows VM di host linux Anda, yang akan memungkinkan untuk menjalankan wadah windows.
Dengan itu, IMHO menjalankannya dengan cara ini di lingkungan PROD tidak akan menjadi ide terbaik.
Juga, jawaban ini memberikan perincian lebih lanjut.