Meningkatkan kontainer ke versi baru sistem operasi Windows
Berlaku untuk: Windows Server 2022, Windows Server 2019, Windows Server 2016
Topik ini menjelaskan cara memutakhirkan kontainer Windows ke versi sistem operasi Windows atau Windows Server baru. Ada dua langkah untuk meningkatkan kontainer:
- Tingkatkan host kontainer ke versi sistem operasi baru.
- Buat instans kontainer baru menggunakan versi sistem operasi baru.
Catatan
Jika Anda hanya perlu memperbarui (atau patch) gambar kontainer OS dasar Windows Anda saat ini, lihat memperbarui kontainer Anda untuk menarik gambar patch terbaru untuk kontainer Anda.
Meningkatkan host kontainer
Untuk memutakhirkan host kontainer ke versi Windows atau Windows Server yang lebih baru, Anda dapat melakukan peningkatan di tempat atau penginstalan yang bersih. Karena host kontainer dan kontainer Windows berbagi satu kernel, Anda harus memastikan versi OS gambar dasar kontainer cocok dengan host. Namun, Anda masih dapat memiliki versi host kontainer yang lebih baru dengan gambar dasar yang lebih lama dengan isolasi Hyper-V. Di Windows Server 2022, Anda dapat menerapkan skenario ini dengan isolasi proses (dalam pratinjau).
Membuat instans kontainer baru menggunakan versi OS baru
Untuk membuat instans kontainer baru, Anda perlu:
- Menarik gambar dasar kontainer
- Edit Dockerfile untuk menunjuk ke gambar dasar baru
- Membuat dan menjalankan gambar aplikasi baru
- Menandai dan mendorong gambar ke registri Anda
Menarik gambar dasar kontainer
Setelah Anda menarik versi OS Windows baru pada host kontainer, ikuti langkah-langkah di bawah ini untuk meningkatkan gambar dasar:
Pilih gambar dasar kontainer yang ingin Anda tingkatkan.
Buka sesi PowerShell sebagai administrator dan, tergantung pada versi OS yang Anda pilih, jalankan perintah tarik docker untuk menarik gambar:
PS C:\> docker pull mcr.microsoft.com/windows/servercore:ltsc2022
Contoh ini menarik gambar dasar Server Core versi 20H2.
Setelah gambar selesai diunduh, Anda dapat memverifikasi bahwa gambar baru telah ditarik dengan menjalankan perintah gambar docker untuk mengembalikan daftar gambar yang ditarik:
docker images
Edit Dockerfile untuk menunjuk ke gambar dasar baru
Selanjutnya, Anda ingin membuat dan memulai instans kontainer baru menggunakan gambar dasar baru yang Anda tarik. Untuk mengotomatiskan proses ini, edit Dockerfile untuk mengalihkannya ke gambar baru.
Catatan
Jika Anda ingin meningkatkan gambar untuk kontainer apa pun yang saat ini berjalan, Anda harus menghentikan kontainer menggunakan docker stop lalu menjalankan docker rm untuk menghapus kontainer.
Buka Dockerfile di editor teks dan buat pembaruan. Dalam contoh berikut, Dockerfile diperbarui ke Server Core 20H2 dengan aplikasi IIS.
FROM mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2022 AS build-env
WORKDIR /app
COPY *.csproj ./
RUN PowerShell Install-WindowsFeature NET-Framework-45-ASPNET
FROM mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2022
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["ServiceMonitor.exe", "w3svc"]
Membuat dan menjalankan gambar aplikasi baru
Setelah Dockerfile diperbarui, Anda perlu membuat dan menjalankan gambar aplikasi.
Gunakan build docker untuk membangun gambar Anda seperti yang ditunjukkan di bawah ini:
docker build -t iss .
Untuk menjalankan kontainer yang baru dibuat, jalankan perintah jalankan docker :
docker run -d -p 8080:80 --name iss-app iss
Menandai dan mendorong gambar ke registri Anda
Untuk memungkinkan host lain menggunakan kembali gambar baru, Anda harus menandai lalu mendorong gambar kontainer ke registri Anda.
Gunakan tag docker untuk menandai gambar sebagai berikut:
docker tag mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2022 <login-server>/iss
Gunakan docker push untuk mendorong gambar ke registri kontainer sebagai berikut:
docker push <login-server> iss
Meningkatkan kontainer menggunakan orkestrator
Anda juga dapat menyebarkan ulang kontainer Windows menggunakan orkestrator, seperti Azure Kubernetes Service dan AKS di Azure Stack HCI. Orkestrator menyediakan otomatisasi yang kuat untuk melakukan ini dalam skala besar. Untuk detailnya, lihat Tutorial: Memperbarui aplikasi di Azure Kubernetes Service atau Tutorial: Memperbarui aplikasi di Azure Kubernetes Service di Azure Stack HCI.