Docker adalah layanan containerization, digunakan untuk menjalankan aplikasi di lingkungan terisolasi yang dikemas dengan semua dependensi dan kode yang dibutuhkan untuk berfungsi. Itu dapat menjalankan semua jenis aplikasi, termasuk program berbasis .NET menggunakan gambar runtime yang disediakan Microsoft.
Dockerizing .NET
Microsoft menyediakan gambar dasar bawaan untuk menjalankan aplikasi .NET. Anda tidak perlu menangani penginstalan .NET runtime atau SDK di wadah Docker Anda, karena Anda cukup memperluas dari gambar dasar Microsoft untuk versi .NET yang digunakan aplikasi Anda.
Kecuali jika Anda berencana untuk menggunakan wadah Windows di server Windows, Anda harus menggunakan .NET Core atau .NET 5. Waktu proses .NET Framework yang lebih lama tidak bersifat lintas platform dan tidak akan berjalan pada wadah berbasis Linux.
Jika Anda tidak menginstal Docker di mesin pengembangan Anda, Anda harus menginstal Docker Desktop untuk memiliki akses ke CLI. Jika Anda menggunakan WSL di Windows, sebaiknya aktifkan mesin berbasis WSL 2, yang memberikan kinerja lebih baik.
Untuk mengujinya, kami akan membuat aplikasi ASP.NET API baru. Prosedur umum yang sama akan berlaku untuk semua jenis aplikasi, karena semua yang dilakukan Docker adalah menjalankan build setiap kali Anda membangun container, dan memulai aplikasi Anda dengan perintah entrypoint.
Buat file baru bernama Dockerfile
di root proyek Anda, tempat solusi Anda berada. Tempel di konfigurasi berikut:
DARI mcr.microsoft.com/dotnet/core/sdk AS build-envWORKDIR /app# Salin csproj dan restoreCOPY *.csproj ./RUN dotnet restore# Salin semua yang lain dan buildCOPY . ./RUN dotnet publish -o out# Bangun runtime imageFROM mcr.microsoft.com/dotnet/core/runtimeWORKDIR /appCOPY --from=build-env /app/out .ENTRYPOINT ["dotnet", "DockerTest.dll"]Dockerfile ini menarik image .NET Core SDK untuk melakukan build. Itu menyalin
.csproj
atas dan pulihkan, lalu salin semua yang lain dan jalankan build. Kemudian, itu membuat gambar baru dari gambar .NET Runtime dan menyalin artefak pembangunan.Akhirnya, titik masuk didefinisikan di sini sebagai
dotnet DockerTest.dll
. Ini akan memulai server web ASP.NET, meskipun Anda mungkin perlu mengubah parameter untuk aplikasi Anda, atau menentukan perintah titik masuk yang sama sekali berbeda.Anda dapat menguji menjalankan wadah Anda dengan
docker container run
, meneruskannya dalam ID wadah build:docker container menjalankan containerid
Untuk aplikasi ASP.NET, Anda harus membuka port dengan memetakan port di host ke port di container:
docker run -p 80:80 containeridAnda dapat membaca panduan kami untuk bekerja dengan Docker dan Dockerfiles untuk mempelajari lebih lanjut.
Cara Mengemas dan Mentransfer Gambar Docker Dari Satu Server ke Server Lainnya Cara Menjalankan NGINX Inside Docker (untuk Penskalaan Otomatis yang Mudah)Docker