Mulai cepat: Docker di Visual Studio
Dengan Visual Studio, Anda dapat dengan mudah membuat, men-debug, dan menjalankan aplikasi .NET, ASP.NET, dan ASP.NET Core dalam kontainer dan menerbitkannya ke Azure Container Registry, Docker Hub, Azure App Service, atau Container Registry Anda sendiri. Dalam artikel ini, kami akan menerbitkan aplikasi ASP.NET Core ke Azure Container Registry.
Prasyarat
- Desktop Docker
- Visual Studio 2019 dengan beban kerja Pengembangan Web, Alat Azure, dan/atau beban kerja pengembangan lintas platform .NET Core yang diinstal
- Alat Pengembangan .NET Core untuk pengembangan dengan .NET Core
- Untuk menerbitkan ke Azure Container Registry, langganan Azure. Daftar untuk percobaan gratis.
Penginstalan dan konfigurasi
Untuk penginstalan Docker, pertama-tama tinjau informasi di Desktop Docker untuk Windows: Apa yang perlu diketahui sebelum Anda menginstal. Berikutnya, pasang Desktop Docker.
Menambahkan proyek ke kontainer Docker
Buat proyek baru menggunakan templat Aplikasi Web ASP.NET Core atau jika Anda ingin menggunakan .NET Framework daripada .NET Core, pilih Aplikasi Web ASP.NET (.NET Framework).
Pada layar Buat aplikasi web baru, pastikan kotak centang Aktifkan Dukungan Docker dipilih.
Cuplikan layar menunjukkan .NET Core; jika Anda menggunakan .NET Framework, tampilannya sedikit berbeda.
Pilih jenis kontainer yang diinginkan (Windows atau Linux) dan klik Buat.
Gambaran umum Dockerfile
Dockerfile, resep untuk membuat gambar Docker akhir, dibuat dalam proyek. Lihat referensi Dockerfile untuk pemahaman tentang perintah di dalamnya:
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
WORKDIR /src
COPY ["WebApplication1/WebApplication1.csproj", "WebApplication1/"]
RUN dotnet restore "WebApplication1/WebApplication1.csproj"
COPY . .
WORKDIR "/src/WebApplication1"
RUN dotnet build "WebApplication1.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "WebApplication1.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "WebApplication1.dll"]
Dockerfile sebelumnya didasarkan pada gambar microsoft/aspnetcore, dan menyertakan instruksi untuk memodifikasi gambar dasar dengan membangun proyek Anda dan menambahkannya ke kontainer. Jika Anda menggunakan .NET Framework, gambar dasar akan berbeda.
Saat kotak centang Konfigurasi untuk HTTPS dialog proyek baru dicentang, Dockerfile mengekspos dua port. Satu port digunakan untuk lalu lintas HTTP; port lainnya digunakan untuk HTTPS. Jika kotak centang tidak dicentang, satu port (80) diekspos untuk lalu lintas HTTP.
Debug
Pilih Docker dari daftar dropdown debug di toolbar, dan mulai debugging aplikasi. Anda mungkin melihat pesan dengan permintaan untuk memercayai sertifikat; pilih percaya sertifikat untuk melanjutkan.
Opsi Alat Kontainer di jendela Output menunjukkan tindakan yang sedang dilakukan. Pertama kali, mungkin perlu beberapa saat untuk mengunduh gambar dasar, tetapi pada proses berikutnya akan jauh lebih cepat.
Catatan
Jika perlu mengubah port untuk penelusuran kesalahan, Anda dapat melakukannya di file launchSettings.json. Lihat Pengaturan Peluncuran Kontainer.
Jendela Containers
Jika memiliki Visual Studio 2019 versi 16.4 atau yang lebih baru, Anda dapat menggunakan jendela Containers untuk melihat kontainer yang sedang berjalan di komputer Anda, serta gambar yang telah Anda sediakan.
Buka jendela Containers dengan menggunakan kotak pencarian di IDE (tekan Ctrl+Q untuk menggunakannya), ketik container
, dan pilih jendela Kontainer dari daftar.
Anda dapat memasang jendela Containers di tempat yang tepat, seperti di bawah editor teks, dengan memindahkannya dan mengikuti panduan penempatan jendela.
Di jendela, temukan kontainer Anda dan lewati setiap tab untuk melihat variabel lingkungan, pemetaan port, log, dan filesystem.
Untuk informasi selengkapnya, lihat Menggunakan jendela Containers.
Menerbitkan gambar Docker
Setelah siklus debug dan pengembangan aplikasi selesai, Anda dapat membuat gambar produksi aplikasi.
Ubah daftar dropdown konfigurasi menjadi Rilis dan buat aplikasi.
Klik kanan proyek Anda di Penjelajah Solusi dan pilih Terbitkan.
Pada dialog Terbitkan, pilih tab Docker Container Registry.
Pilih Buat Azure Container Registry Baru.
Isi nilai yang Anda inginkan di Buat Azure Container Registry baru.
Pengaturan Nilai yang disarankan Deskripsi Prefiks DNS Nama unik secara global Nama yang mengidentifikasi registri kontainer Anda secara unik. Langganan Memilih langganan Anda Langganan Azure untuk digunakan. Grup Sumber Daya myResourceGroup Nama grup sumber daya untuk membuat registri kontainer Anda. Pilih Baru untuk membuat grup sumber daya baru. SKU Standard Tingkat layanan registri kontainer Lokasi Registri Lokasi yang dekat dengan Anda Pilih Lokasi di wilayah yang dekat dengan Anda atau di dekat layanan lain yang akan menggunakan registri kontainer Anda. Klik Buat. Dialog Terbitkan kini memperlihatkan registri yang dibuat.
Pilih Selesai untuk menyelesaikan proses penerbitan gambar kontainer Anda ke registri yang baru dibuat di Azure.
Langkah berikutnya
Anda sekarang dapat menarik kontainer dari registri ke host apa pun yang mampu menjalankan gambar Docker, misalnya Azure Container Instances.
Dengan Visual Studio, Anda dapat dengan mudah membuat, men-debug, dan menjalankan aplikasi .NET, ASP.NET, dan ASP.NET Core dalam kontainer dan menerbitkannya ke Azure Container Registry, Docker Hub, Azure App Service, atau Container Registry Anda sendiri. Dalam artikel ini, Anda menerbitkan aplikasi ASP.NET Core ke Azure Container Registry.
Prasyarat
- Desktop Docker
- Visual Studio 2022 dengan beban kerja Pengembangan Web, Alat Azure, dan/atau beban kerja pengembangan desktop .NET yang diinstal
- Untuk menerbitkan ke Azure Container Registry, langganan Azure. Daftar untuk percobaan gratis.
Penginstalan dan konfigurasi
Untuk penginstalan Docker, pertama-tama tinjau informasi di Desktop Docker untuk Windows: Apa yang perlu diketahui sebelum Anda menginstal. Berikutnya, pasang Desktop Docker.
Menambahkan proyek ke kontainer Docker
Sebelum Anda membuat proyek Visual Studio, pastikan Docker Desktop menjalankan jenis kontainer (Windows atau Linux) yang ingin Anda gunakan dalam proyek Visual Studio Anda.
Untuk mengubah jenis kontainer yang digunakan oleh Docker Desktop, klik kanan ikon Docker (paus) di Taskbar dan pilih Beralih ke kontainer Linux atau Beralih ke kontainer Windows.
Peringatan
Jika Anda mengalihkan jenis kontainer setelah membuat proyek Visual Studio, file gambar Docker mungkin gagal dimuat.
Buat proyek baru menggunakan templat Aplikasi Web ASP.NET Core atau jika Anda ingin menggunakan .NET Framework daripada .NET Core, pilih Aplikasi Web ASP.NET (.NET Framework).
Pada layar Buat aplikasi web baru, pastikan kotak centang Aktifkan Dukungan Docker dipilih.
Cuplikan layar menunjukkan rilis terbaru dengan .NET 8.0. Jika Anda menggunakan .NET Framework, dialog terlihat sedikit berbeda.
Pilih jenis kontainer yang Anda inginkan (Windows atau Linux) dan pilih Buat.
Gambaran umum Dockerfile
Visual Studio membuat Dockerfile di proyek Anda, yang menyediakan resep cara membuat gambar Docker akhir. Untuk informasi selengkapnya, lihat referensi Dockerfile untuk detail tentang perintah yang digunakan dalam Dockerfile.
#See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.
#Depending on the operating system of the host machines(s) that will build or run the containers, the image specified in the FROM statement may need to be changed.
#For more information, please see https://aka.ms/containercompat
FROM mcr.microsoft.com/dotnet/aspnet:8.0-nanoserver-1809 AS base
WORKDIR /app
EXPOSE 8080
EXPOSE 8081
FROM mcr.microsoft.com/dotnet/sdk:8.0-nanoserver-1809 AS build
ARG BUILD_CONFIGURATION=Release
WORKDIR /src
COPY ["MyWepApp/MyWebApp.csproj", "MyWebApp/"]
RUN dotnet restore "./MyWebApp/./MyWebApp.csproj"
COPY . .
WORKDIR "/src/MyWebApp"
RUN dotnet build "./MyWebApp.csproj" -c %BUILD_CONFIGURATION% -o /app/build
FROM build AS publish
ARG BUILD_CONFIGURATION=Release
RUN dotnet publish "./MyWebApp.csproj" -c %BUILD_CONFIGURATION% -o /app/publish /p:UseAppHost=false
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "MyWebApp.dll"]
Dockerfile sebelumnya didasarkan pada gambar .NET 8 Microsoft Container Registry (MCR) dan menyertakan instruksi untuk memodifikasi gambar dasar dengan membangun proyek bernama MyWebApp
dan menambahkannya ke kontainer. Jika Anda menggunakan .NET Framework, gambar dasarnya berbeda.
Saat kotak centang Konfigurasi untuk HTTPS dialog proyek baru dicentang, Dockerfile mengekspos dua port. Satu port digunakan untuk lalu lintas HTTP; port lainnya digunakan untuk HTTPS. Jika kotak centang tidak dicentang, satu port (80) diekspos untuk lalu lintas HTTP.
Dengan Visual Studio 2022 versi 17.7 atau yang lebih baru, Anda dapat menargetkan .NET 8. Dalam hal ini, Anda memiliki manfaat untuk dapat menjalankan aplikasi Anda dengan lebih aman, sebagai pengguna normal, daripada dengan izin yang ditingkatkan. Dockerfile default yang dihasilkan oleh Visual Studio untuk proyek .NET 8 dikonfigurasi untuk berjalan sebagai pengguna normal. Untuk mengaktifkan perilaku ini pada proyek yang ada, tambahkan baris USER app
ke Dockerfile di gambar dasar. Selain itu, karena port 80 dibatasi untuk pengguna normal, ekspos port 8080 dan 8081 alih-alih 80 dan 443. Port 8080 digunakan untuk lalu lintas HTTP, dan port 8081 digunakan untuk HTTPS. Untuk berjalan sebagai pengguna normal, kontainer harus menggunakan gambar dasar .NET 8, dan aplikasi harus berjalan sebagai aplikasi .NET 8. Saat dikonfigurasi dengan benar, Dockerfile Anda harus berisi kode seperti dalam contoh berikut:
FROM mcr.microsoft.com/dotnet/aspnet:8.0-preview AS base
USER app
WORKDIR /app
EXPOSE 8080
EXPOSE 8081
Debug
Pilih Docker dari daftar dropdown debug di toolbar, dan mulai debugging aplikasi. Anda mungkin melihat pesan dengan permintaan untuk memercayai sertifikat; pilih percaya sertifikat untuk melanjutkan.
Opsi Alat Kontainer di jendela Output menunjukkan tindakan yang sedang dilakukan. Pertama kali, mungkin perlu beberapa saat untuk mengunduh gambar dasar, tetapi lebih cepat pada eksekusi berikutnya.
Setelah build selesai, browser akan membuka dan menampilkan beranda aplikasi Anda. Di bilah alamat browser, Anda dapat melihat localhost
URL dan nomor port untuk penelusuran kesalahan.
Catatan
Jika Anda perlu mengubah port untuk penelusuran kesalahan, Anda dapat melakukannya dalam launchSettings.json
file. Lihat Pengaturan Peluncuran Kontainer.
Jendela Containers
Anda dapat menggunakan jendela Kontainer untuk melihat kontainer yang sedang berjalan di komputer Anda dan gambar lain yang telah Anda sediakan.
Buka jendela Containers dengan menggunakan kotak pencarian di IDE (tekan Ctrl+Q untuk menggunakannya), ketik container
, dan pilih jendela Kontainer dari daftar.
Anda dapat memasang jendela Containers di tempat yang tepat, seperti di bawah editor teks, dengan memindahkannya dan mengikuti panduan penempatan jendela.
Di jendela, temukan kontainer Anda dan lewati setiap tab untuk melihat variabel lingkungan, pemetaan port, log, dan filesystem.
Untuk informasi selengkapnya, lihat Menggunakan jendela Containers.
Menerbitkan gambar Docker
Setelah siklus debug dan pengembangan aplikasi selesai, Anda dapat membuat gambar produksi aplikasi.
Ubah daftar dropdown konfigurasi menjadi Rilis dan buat aplikasi.
Klik kanan proyek Anda di Penjelajah Solusi dan pilih Terbitkan.
Pada dialog Terbitkan, pilih tab Docker Container Registry.
Pilih Buat Azure Container Registry Baru.
Isi nilai yang Anda inginkan di Buat Azure Container Registry baru.
Pengaturan Nilai yang disarankan Deskripsi Prefiks DNS Nama unik secara global Nama yang mengidentifikasi registri kontainer Anda secara unik. Langganan Memilih langganan Anda Langganan Azure untuk digunakan. Grup Sumber Daya myResourceGroup Nama grup sumber daya untuk membuat registri kontainer Anda. Pilih Baru untuk membuat grup sumber daya baru. SKU Standard Tingkat layanan registri kontainer Lokasi Registri Lokasi yang dekat dengan Anda Pilih Lokasi di wilayah di dekat Anda atau di dekat layanan lain yang dapat menggunakan registri kontainer Anda. Pilih Buat. Dialog Terbitkan kini memperlihatkan registri yang dibuat.
Pilih Selesai untuk menyelesaikan proses penerbitan gambar kontainer Anda ke registri yang baru dibuat di Azure.
Langkah berikutnya
Anda sekarang dapat menarik kontainer dari registri ke host apa pun yang mampu menjalankan gambar Docker, misalnya Azure Container Instances.
Sumber Daya Tambahan:
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk