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:

  1. Tingkatkan host kontainer ke versi sistem operasi baru.
  2. 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:

  1. Pilih gambar dasar kontainer yang ingin Anda tingkatkan.

  2. 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.

  3. 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.

  1. Gunakan build docker untuk membangun gambar Anda seperti yang ditunjukkan di bawah ini:

    docker build -t iss .
    
  2. 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.

  1. Gunakan tag docker untuk menandai gambar sebagai berikut:

    docker tag mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2022 <login-server>/iss
    
  2. 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.