Baca dalam bahasa Inggris

Bagikan melalui


Cetak Penampung di Kontainer Windows

Aplikasi dengan dependensi pada layanan pencetakan dapat berhasil di-kontainerisasi dengan kontainer Windows. Ada persyaratan khusus yang harus dipenuhi agar berhasil mengaktifkan fungsionalitas layanan printer. Panduan ini menjelaskan cara mengonfigurasi penyebaran Anda dengan benar.

Penting

Meskipun mendapatkan akses ke layanan pencetakan dengan sukses dalam pekerjaan kontainer, fungsionalitas dibatasi dalam bentuk; beberapa tindakan terkait pencetakan mungkin tidak berfungsi. Misalnya, aplikasi yang memiliki dependensi menginstal driver printer ke host tidak dapat dikontainerisasi karena penginstalan driver dari dalam kontainer tidak didukung. Silakan buka umpan balik di bawah ini jika Anda menemukan fitur pencetakan yang tidak didukung yang ingin Anda dukung dalam kontainer.

Pengaturan

  • Host harus menggunakan Windows Server 2019 atau Windows 10 Pro/Enterprise dengan pembaruan Oktober 2018 atau yang lebih baru.
  • Gunakan gambar dasar untuk kontainer Windows atau gambar dasar untuk kontainer Windows Server. Citra dasar kontainer Windows lainnya (seperti Nano Server dan Windows Server Core) tidak memiliki peran server cetak.

Hyper-V Isolasi

Kami merekomendasikan untuk menjalankan kontainer Anda dengan isolasi Hyper-V. Saat dijalankan dalam mode ini, Anda dapat memiliki kontainer sebanyak yang Anda inginkan untuk berjalan dengan akses ke layanan cetak. Anda tidak perlu mengubah layanan spooler pada host.

Anda bisa memverifikasi fungsionalitas dengan kueri PowerShell berikut ini:

PowerShell
PS C:\Users\Administrator> docker run -it --isolation hyperv mcr.microsoft.com/windows:1809 powershell.exe
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

PS C:\> Get-Service spooler

Status   Name               DisplayName
------   ----               -----------
Running  spooler            Print Spooler


PS C:\> Get-Printer

Name                           ComputerName    Type         DriverName                PortName        Shared   Published
----                           ------------    ----         ----------                --------        ------   --------
Microsoft XPS Document Writer                  Local        Microsoft XPS Document... PORTPROMPT:     False    False
Microsoft Print to PDF                         Local        Microsoft Print To PDF    PORTPROMPT:     False    False
Fax                                            Local        Microsoft Shared Fax D... SHRFAX:         False    False


PS C:\>

Isolasi proses

Karena sifat kernel bersama dari kontainer yang terisolasi proses, perilaku saat ini membatasi pengguna untuk hanya menjalankan satu instans layanan spooler printer di seluruh host dan semua anak kontainernya. Jika host menjalankan penampung pencetak, Anda harus menghentikan layanan pada host sebelum mengintempasikan untuk meluncurkan layanan pencetak pada tamu.

Tip

Jika Anda meluncurkan kontainer dan mengkueri layanan spooler di dalam kontainer dan host secara bersamaan, keduanya akan melaporkan statusnya sebagai 'berjalan'. Tetapi jangan tertipu--kontainer tidak akan dapat mengkueri daftar printer yang tersedia. Layanan spooler host tidak boleh berjalan.

Untuk memeriksa apakah host menjalankan layanan printer, gunakan kueri di PowerShell di bawah ini:

PowerShell
PS C:\Users\Administrator> Get-Service spooler

Status   Name               DisplayName
------   ----               -----------
Running  spooler            Print Spooler

PS C:\Users\Administrator>

Untuk menghentikan layanan spooler pada host, gunakan perintah berikut di PowerShell:

PowerShell
Stop-Service spooler
Set-Service spooler -StartupType Disabled

Luncurkan kontainer dan verifikasi akses ke printer.

PowerShell
PS C:\Users\Administrator> docker run -it --isolation process mcr.microsoft.com/windows:1809 powershell.exe
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.


PS C:\> Get-Service spooler

Status   Name               DisplayName
------   ----               -----------
Running  spooler            Print Spooler


PS C:\> Get-Printer

Name                           ComputerName    Type         DriverName                PortName        Shared   Published
----                           ------------    ----         ----------                --------        ------   --------
Microsoft XPS Document Writer                  Local        Microsoft XPS Document... PORTPROMPT:     False    False
Microsoft Print to PDF                         Local        Microsoft Print To PDF    PORTPROMPT:     False    False
Fax                                            Local        Microsoft Shared Fax D... SHRFAX:         False    False


PS C:\>