Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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
- Docker Desktop atau Podman Desktop.
- Visual Studio, atau untuk dukungan Podman, Visual Studio 2026, dengan ASP.NET dan pengembangan web, beban kerja pengembangan Azure , dan/atau beban kerja pengembangan desktop .NET terinstal.
- Untuk menerbitkan ke Azure Container Registry, diperlukan langganan Azure. Mendaftar untuk uji coba gratis.
Prasyarat
- Docker Desktop.
- Visual Studio dengan ASP.NET dan pengembangan web, beban kerja pengembangan Azure , dan/atau beban kerja pengembangan desktop .NET terinstal.
- Untuk menerbitkan ke Azure Container Registry, diperlukan langganan Azure. Mendaftar untuk uji coba gratis.
Penginstalan dan penyiapan
Untuk penginstalan Docker, pertama-tama tinjau informasi di Docker Desktop untuk Windows: Apa yang harus diketahui sebelum Anda menginstal. Selanjutnya, instal Docker Desktop.
Penginstalan dan penyiapan
Untuk penginstalan Docker, pertama-tama tinjau informasi di Docker Desktop untuk Windows: Apa yang harus diketahui sebelum Anda menginstal. Selanjutnya, instal Docker Desktop.
Untuk menggunakan Podman sebagai platform kontainer, unduh Podman Desktop untuk Windows, lalu ikuti tutorial di Podman untuk windows guna menginisialisasi dan memulai komputer Podman.
Menambahkan proyek ke kontainer
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 ASP.NET Core Web App .
Pada layar Buat aplikasi web baru , pastikan kotak centang Aktifkan dukungan kontainer dipilih.
Cuplikan layar menunjukkan rilis terbaru dengan .NET 8.0.
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.
# This stage is used when running from VS in fast mode (Default for Debug configuration)
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
USER $APP_UID
WORKDIR /app
EXPOSE 8080
EXPOSE 8081
# This stage is used to build the service project
FROM mcr.microsoft.com/dotnet/sdk:8.0 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
# This stage is used to publish the service project to be copied to the final stage
FROM build AS publish
ARG BUILD_CONFIGURATION=Release
RUN dotnet publish "./MyWebApp.csproj" -c %BUILD_CONFIGURATION% -o /app/publish /p:UseAppHost=false
# This stage is used in production or when running from VS in regular mode (Default when not using the Debug configuration)
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "MyWebApp.dll"]
Dockerfile sebelumnya didasarkan pada gambar katalog kontainer sindikat Microsoft .NET 8 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 dialog proyek baru dicentang kotak centang Konfigurasi untuk HTTPS, Dockerfile mengekspos dua port. Satu port digunakan untuk lalu lintas HTTP; port lain digunakan untuk HTTPS. Jika kotak centang tidak dicentang, satu port (80 atau 8080) diekspos untuk lalu lintas HTTP.
Saat menargetkan .NET 8 dan yang lebih baru, Anda dapat menjalankan aplikasi dengan lebih aman sebagai pengguna biasa, 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 AS base
USER app
WORKDIR /app
EXPOSE 8080
EXPOSE 8081
Templat default untuk .NET 8 dan yang lebih baru menggunakan variabel APP_UID lingkungan untuk identitas pengguna normal.
Awakutu
Pilih Docker dari daftar dropdown debug di toolbar, dan mulai debugging aplikasi. Anda mungkin melihat pesan dengan perintah tentang memercayai sertifikat; pilih untuk mempercayai sertifikat untuk melanjutkan.
Opsi Alat Kontainer di jendela Output menunjukkan tindakan apa yang terjadi. 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 URL localhost dan nomor port untuk debugging.
Nota
Jika Anda perlu mengubah port untuk penelusuran kesalahan, Anda dapat melakukannya dalam file launchSettings.json. Lihat Pengaturan Peluncuran Kontainer .
Jendela kontener
Anda dapat menggunakan jendela Kontainer untuk melihat kontainer yang sedang berjalan di komputer Anda dan gambar lain yang telah Anda sediakan.
Buka jendela Kontainer dengan menggunakan kotak pencarian di IDE (tekan Ctrl+Q untuk menggunakannya), ketik container, dan pilih jendela Kontainer dari daftar.
Anda dapat memasang jendela Kontainer di tempat yang nyaman, seperti di bawah editor, dengan memindahkannya dan mengikuti panduan penempatan jendela.
Di jendela, temukan kontainer Anda dan lewati setiap tab untuk melihat variabel lingkungan, pemetaan port, log, dan sistem file.
Untuk informasi selengkapnya, lihat Menggunakan jendela Kontainer.
Menerbitkan gambar Docker
Setelah siklus pengembangan dan debug 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 Awalan DNS Nama unik global Nama yang secara unik mengidentifikasi registri kontainer Anda. Langganan Pilih langganan Anda Langganan Azure yang akan digunakan. Grup Sumber Daya KelompokSumberDayaSaya Nama grup sumber daya untuk membuat registri kontainer Anda. Pilih Baru untuk membuat grup sumber daya baru. SKU Standar 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 sekarang 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.
Menambahkan proyek ke kontainer
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 ASP.NET Core Web App .
Pada layar Buat aplikasi web baru , pastikan kotak centang Aktifkan Dukungan kontainer dipilih.
Cuplikan layar menunjukkan rilis terbaru dengan .NET 8.0.
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.
# This stage is used when running from VS in fast mode (Default for Debug configuration)
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
USER $APP_UID
WORKDIR /app
EXPOSE 8080
EXPOSE 8081
# This stage is used to build the service project
FROM mcr.microsoft.com/dotnet/sdk:8.0 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
# This stage is used to publish the service project to be copied to the final stage
FROM build AS publish
ARG BUILD_CONFIGURATION=Release
RUN dotnet publish "./MyWebApp.csproj" -c %BUILD_CONFIGURATION% -o /app/publish /p:UseAppHost=false
# This stage is used in production or when running from VS in regular mode (Default when not using the Debug configuration)
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "MyWebApp.dll"]
Dockerfile sebelumnya didasarkan pada gambar katalog kontainer sindikat Microsoft .NET 8 dan menyertakan instruksi untuk memodifikasi gambar dasar dengan membangun proyek bernama MyWebApp dan menambahkannya ke kontainer.
Saat dialog proyek baru dicentang kotak centang Konfigurasi untuk HTTPS, Dockerfile mengekspos dua port. Satu port digunakan untuk lalu lintas HTTP; port lain digunakan untuk HTTPS. Jika kotak centang tidak dicentang, satu port (80 atau 8080) diekspos untuk lalu lintas HTTP.
Saat menargetkan .NET 8 dan yang lebih baru, Anda dapat menjalankan aplikasi dengan lebih aman sebagai pengguna biasa, 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 AS base
USER app
WORKDIR /app
EXPOSE 8080
EXPOSE 8081
Templat default menggunakan variabel APP_UID lingkungan untuk identitas pengguna normal.
Awakutu
Pilih Docker dari daftar dropdown debug di toolbar, dan mulai debugging aplikasi. Anda mungkin melihat pesan dengan perintah tentang memercayai sertifikat; pilih untuk mempercayai sertifikat untuk melanjutkan.
Opsi Alat Kontainer di jendela Output menunjukkan tindakan apa yang terjadi. 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 URL localhost dan nomor port untuk debugging.
Nota
Jika Anda perlu mengubah port untuk penelusuran kesalahan, Anda dapat melakukannya dalam file launchSettings.json. Lihat Pengaturan Peluncuran Kontainer .
Jendela kontener
Anda dapat menggunakan jendela Kontainer untuk melihat kontainer yang sedang berjalan di komputer Anda dan gambar lain yang telah Anda sediakan.
Buka jendela Kontainer dengan menggunakan kotak pencarian di IDE (tekan Ctrl+Q untuk menggunakannya), ketik container, dan pilih jendela Kontainer dari daftar.
Anda dapat memasang jendela Kontainer di tempat yang nyaman, seperti di bawah editor, dengan memindahkannya dan mengikuti panduan penempatan jendela.
Di jendela, temukan kontainer Anda dan lewati setiap tab untuk melihat variabel lingkungan, pemetaan port, log, dan sistem file.
Untuk informasi selengkapnya, lihat Menggunakan jendela Kontainer.
Menerbitkan gambar Docker
Setelah siklus pengembangan dan debug 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 Awalan DNS Nama unik global Nama yang secara unik mengidentifikasi registri kontainer Anda. Langganan Pilih langganan Anda Langganan Azure yang akan digunakan. Grup Sumber Daya KelompokSumberDayaSaya Nama grup sumber daya untuk membuat registri kontainer Anda. Pilih Baru untuk membuat grup sumber daya baru. SKU Standar 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 sekarang 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.