GNU/Linux >> Belajar Linux >  >> Panels >> Docker

.NET Core dan Docker

Jika Anda telah menginstal Docker, Anda dapat menjalankan sampel .NET Core dengan cepat seperti ini. Cobalah:

docker run --rm microsoft/dotnet-samples

Jika Docker untuk Windows Anda dalam "mode Windows Container", Anda dapat mencoba .NET Framework (The 4.x Windows Framework) seperti ini:

docker run --rm microsoft/dotnet-framework-samples

Saya membuat video minggu lalu dengan tulisan yang menunjukkan betapa mudahnya memasukkan aplikasi kemas ke Azure DAN murah dengan penagihan per detik.

Gambar container mudah dibagikan melalui Docker Hub, Docker Store, dan registry Docker pribadi, seperti Azure Container Registry. Lihat juga Alat Visual Studio untuk Docker. Semuanya bekerja sama dengan sangat baik.

Saya suka kutipan dari Richard Lander ini:

Bayangkan lima atau lebih tahun yang lalu seseorang memberi tahu Anda dalam wawancara kerja bahwa mereka sangat peduli dengan konsistensi sehingga mereka selalu mengirimkan sistem operasi dengan aplikasi mereka. Anda mungkin tidak akan mempekerjakan mereka. Namun, itulah model yang digunakan Docker!

Dan itu model yang bagus! Ini memberi Anda konsistensi yang terjamin. "Container menyertakan aplikasi dan semua dependensinya. Aplikasi mengeksekusi kode yang sama, terlepas dari komputer, lingkungan, atau cloud." Ini juga merupakan cara yang baik untuk memastikan .NET dasar Anda diperbarui dengan perbaikan keamanan:

Docker adalah pengubah permainan untuk memperoleh dan menggunakan pembaruan .NET. Pikirkan kembali hanya beberapa tahun yang lalu. Anda akan mengunduh .NET Framework terbaru sebagai paket penginstal MSI di Windows dan tidak perlu mengunduhnya lagi hingga kami mengirimkan versi berikutnya. Maju cepat ke hari ini. Kami mendorong image container yang diperbarui ke Docker Hub beberapa kali dalam sebulan.

Gambar .NET dibuat menggunakan gambar Docker resmi yang bagus.

Gambar .NET dibuat menggunakan gambar resmi. Kami membangun di atas gambar resmi Alpine, Debian, dan Ubuntu untuk x64 dan ARM. Dengan menggunakan gambar resmi, kami menyerahkan biaya dan kerumitan untuk memperbarui gambar dan paket dasar sistem operasi secara teratur seperti OpenSSL, misalnya, kepada pengembang yang paling dekat dengan teknologi tersebut. Sebagai gantinya, sistem build kami dikonfigurasikan untuk secara otomatis membuat, menguji, dan mendorong gambar .NET setiap kali gambar resmi yang kami gunakan diperbarui. Dengan menggunakan pendekatan itu, kami dapat menawarkan .NET Core di beberapa distro Linux dengan biaya rendah dan merilis pembaruan untuk Anda dalam beberapa jam.

Di sinilah Anda dapat menemukan repo .NET Docker Hub:

.NET Core repo:

  • microsoft/dotnet – termasuk .NET Core runtime, sdk, dan gambar ASP.NET Core.
  • microsoft/aspnetcore – termasuk gambar runtime ASP.NET Core untuk .NET Core 2.0 dan versi sebelumnya. Gunakan microsoft/dotnet untuk .NET Core 2.1 dan yang lebih baru.
  • microsoft/aspnetcore-build – Termasuk ASP.NET Core SDK dan node.js untuk .NET Core 2.0 dan versi sebelumnya. Gunakan microsoft/dotnet untuk .NET Core 2.1 dan yang lebih baru. Lihat aspnet/announcements #298.

.NET Framework repo:

  • microsoft/dotnet-framework – termasuk runtime .NET Framework dan gambar SDK.
  • microsoft/aspnet – termasuk gambar runtime ASP.NET, untuk ASP.NET Web Forms dan MVC, dikonfigurasi untuk IIS.
  • microsoft/wcf – termasuk gambar runtime WCF yang dikonfigurasi untuk IIS.
  • microsoft/iis – menyertakan IIS di atas gambar dasar Windows Server Core. Berfungsi untuk tetapi tidak dioptimalkan untuk aplikasi .NET Framework. Microsoft/aspnet dan microsoft/wcprepos direkomendasikan untuk menjalankan masing-masing jenis aplikasi.

Ada beberapa jenis gambar di repo microsoft/dotnet:

  • sdk — Gambar .NET Core SDK, yang mencakup .NET Core CLI, runtime .NET Core, dan ASP.NET Core.
  • aspnetcore-runtime — Gambar ASP.NET Core, yang mencakup runtime .NET Core dan ASP.NET Core.
  • waktu proses — Gambar runtime .NET Core, yang mencakup runtime .NET Core.
  • runtime-deps — Gambar ketergantungan runtime .NET Core, yang hanya menyertakan dependensi .NET Core dan bukan .NET Core itu sendiri. Gambar ini ditujukan untuk aplikasi mandiri dan hanya ditawarkan untuk Linux. Untuk Windows, Anda dapat menggunakan gambar dasar sistem operasi secara langsung untuk aplikasi mandiri, karena semua dependensi .NET Core dipenuhi olehnya.

Misalnya, saya akan menggunakan gambar SDK untuk membangun aplikasi saya, tetapi saya akan menggunakan aspnetcore-runtime untuk mengirimkannya. Tidak perlu mengirimkan SDK dengan aplikasi yang sedang berjalan. Saya ingin menjaga ukuran gambar saya sekecil mungkin!

Bagi saya, saya bahkan membuat sedikit skrip PowerShell (berjalan di Windows atau Linux) yang membangun dan menguji situs Podcast saya (podcast dengan tag gambar:test) di dalam buruh pelabuhan . Perhatikan pemetaan volume? Ini menyimpan Hasil Tes di luar wadah sehingga saya dapat melihatnya nanti jika perlu.

#!/usr/local/bin/powershell
docker build --pull --target testrunner -t podcast:test .
docker run --rm -v c:\github\hanselminutes-core\TestResults:/app/hanselminutes.core.tests/TestResults podcast:test

Cukup licin.

Results File: /app/hanselminutes.core.tests/TestResults/_898a406a7ad1_2018-06-28_22_05_04.trx

Total tests: 22. Passed: 22. Failed: 0. Skipped: 0.
Test execution time: 8.9496 Seconds

Bacalah tentang bagaimana gambar .NET Core dibuat, dikelola, dan dipelihara. Itu memudahkan saya untuk mendapatkan situs podcast saya - setelah di-dockerized - berjalan di .NET Core pada Raspberry Pi (ARM32).

Sponsor Baru! Jangan pernah mengetik faktur lagi! Dengan DocSight OCR oleh ActivePDF, Anda akan mengekstrak data dari tagihan, faktur, PO &dokumen lainnya menggunakan teknologi pengambilan data zona. Raih Transformasi Digital hari ini!


Docker
  1. Apa itu Docker (dan wadah Linux?)

  2. Mengapa Deis dan apa itu?

  3. .NET core X509Store di linux

  1. Cara Menginstal .NET Core di Debian 10

  2. perbedaan antara podman dan buruh pelabuhan.

  3. Kapan dan Mengapa Menggunakan Docker

  1. Instal Docker dan WordPress Di Ubuntu

  2. Mendeteksi bahwa aplikasi .NET Core berjalan di Docker Container dan SkippableFacts di XUnit

  3. Mengoptimalkan ukuran Gambar ASP.NET Core Docker