ค้นหาเว็บไซต์

เรียกใช้คอนเทนเนอร์ Docker บน Windows Server 2019


ในบทช่วยสอนนี้ เราจะดูว่าคุณสามารถกำหนดค่าเซิร์ฟเวอร์ Windows 2019 ของคุณให้รันคอนเทนเนอร์ Docker ได้อย่างไร Docker เป็นผู้เปลี่ยนเกมในด้านคอนเทนเนอร์แอปพลิเคชัน รวมถึงการออกแบบไมโครเซอร์วิสและรูปแบบการใช้งานทั้งหมด Docker ทำให้ง่ายต่อการสร้าง จัดส่ง และเรียกใช้อิมเมจที่มีแอปพลิเคชันที่มีการขึ้นต่อกัน และหลีกเลี่ยงปัญหาการขึ้นต่อกันที่บ้าคลั่งซึ่งมักเกิดขึ้นกับการใช้เครื่องเสมือน

เครื่องยนต์นักเทียบท่าคือสิ่งที่ขับเคลื่อนคอนเทนเนอร์นักเทียบท่า เดิมเขียนขึ้นสำหรับ Linux แต่มีงานหลายอย่างเพื่อให้ผู้ใช้ Windows และ macOS สามารถเรียกใช้คอนเทนเนอร์ Docker ได้

ข้อกำหนดเบื้องต้นประการหนึ่งคือการติดตั้งเซิร์ฟเวอร์ Windows ซึ่งอาจเป็นบนเครื่องเสมือนที่ทำงานในองค์กร การปรับใช้เซิร์ฟเวอร์จริง หรืออินสแตนซ์คลาวด์ที่ทำงานใน Azure คุณสามารถดูคู่มือการติดตั้งของเราด้านล่าง

  • วิธีการติดตั้ง Windows Server 2019 ทีละขั้นตอน

วิธีรัน Docker Containers บน Windows Server 2019

ก่อนที่คุณจะสามารถใช้ Windows Containers เพื่อรันแอปพลิเคชันที่แยกหลายตัวในระบบของคุณได้ คุณจะต้องเปิดใช้งานคุณสมบัติคอนเทนเนอร์และติดตั้ง Docker บน Windows Server 2019

ขั้นตอนที่ 1: เปิดใช้งานฟีเจอร์คอนเทนเนอร์ใน Windows Server 2019

ขั้นตอนแรกคือการเปิดใช้งานคุณสมบัติคอนเทนเนอร์ของ Windows Server 2019 เปิด PowerShell ในฐานะผู้ดูแลระบบ

รันคำสั่งต่อไปนี้

Install-Module -Name DockerMsftProvider -Repository PSGallery -Force

การดำเนินการนี้จะติดตั้ง Docker-Microsoft PackageManagement Provider จาก PowerShell Gallery

ผลลัพธ์ตัวอย่างมีดังต่อไปนี้:

ขั้นตอนที่ 2: ติดตั้ง Docker บน Windows Server 2019

เมื่อเปิดใช้งานฟีเจอร์คอนเทนเนอร์บน Windows Server 2019 แล้ว ให้ติดตั้ง Docker Engine และไคลเอ็นต์ล่าสุดโดยเรียกใช้คำสั่งด้านล่างในเซสชัน PowerShell ของคุณ

Install-Package -Name docker -ProviderName DockerMsftProvider

เห็นด้วยกับการติดตั้งโดยใช้ "ใช่" หรือ "Y" หรือ "A" เพื่อยอมรับทั้งหมด

เมื่อการติดตั้งเสร็จสมบูรณ์ ให้รีบูทคอมพิวเตอร์

Restart-Computer -Force

สามารถตรวจสอบเวอร์ชัน Docker ที่ติดตั้งได้ด้วย:

Administrator> Get-Package -Name Docker -ProviderName DockerMsftProvider
 Name                           Version          Source                           ProviderName
 ----                           -------          ------                           ------------
 docker                         18.09.2          DockerDefault                    DockerMsftProvider

สามารถทำได้เช่นเดียวกันด้วยคำสั่ง docker --version

PS C:\Users\Administrator> docker version
 Client:
  Version:           18.09.2
  API version:       1.39
  Go version:        go1.10.6
  Git commit:        1ac774dfdd
  Built:             unknown-buildtime
  OS/Arch:           windows/amd64
  Experimental:      false
 error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.39/version: open //./pipe/docker_engine: The system cannot find the file specified. In the default daemon configuration on Windows, the docker client must be run elevated to connect. This error may also indicate that the docker daemon is not running.

การอัพเกรดสามารถทำได้ทุกเมื่อโดยการรันคำสั่งต่อไปนี้บน PowerShell

Install-Package -Name Docker -ProviderName DockerMsftProvider -Update -Force
Start-Service Docker

ขั้นตอนที่ 3: เรียกใช้คอนเทนเนอร์ Docker

เริ่มนักเทียบท่าภูต

Start-Service Docker

หลังจากเริ่มบริการ Docker Engine ให้ดาวน์โหลดอิมเมจตัวอย่าง .NET ที่สร้างไว้ล่วงหน้าจากรีจิสทรี Docker Hub:

docker pull mcr.microsoft.com/dotnet/samples:dotnetapp-nanoserver-2009

คุณสามารถดึงรายการแท็กที่มีอยู่ทั้งหมดสำหรับ dotnet/samples ได้ที่ https://mcr.microsoft.com/v2/dotnet/samples/tags/list

จากนั้นปรับใช้คอนเทนเนอร์ธรรมดาที่รันแอปพลิเคชัน .Net Hello World

docker run mcr.microsoft.com/dotnet/samples:dotnetapp-nanoserver-2009

คอนเทนเนอร์จะเริ่มทำงาน พิมพ์ข้อความสวัสดีชาวโลก จากนั้นจึงออก

การรัน Linux Containers บน Windows Server 2019

เมื่อแกะกล่อง Docker บน Windows จะใช้งานเฉพาะคอนเทนเนอร์ Windows เท่านั้น หากต้องการใช้คอนเทนเนอร์ Linux บน Windows Server คุณต้องใช้ Docker Enterprise Edition Preview ซึ่งมีระบบ LinuxKit เต็มรูปแบบสำหรับการรันคอนเทนเนอร์ Docker Linux

ถอนการติดตั้ง Docker CE ปัจจุบันของคุณ

Uninstall-Package -Name docker -ProviderName DockerMSFTProvider

เปิดใช้งาน Nested Virtualization หากคุณใช้งาน Docker Containers โดยใช้ Linux Virtual Machine ที่ทำงานบน Hyper-V

Get-VM WinContainerHost | Set-VMProcessor -ExposeVirtualizationExtensions $true

จากนั้นติดตั้งรุ่นตัวอย่างปัจจุบันของ Docker EE

Install-Module DockerProvider
Install-Package Docker -ProviderName DockerProvider -RequiredVersion preview

เปิดใช้งานระบบ LinuxKit เพื่อเรียกใช้คอนเทนเนอร์ Linux

[Environment]::SetEnvironmentVariable("LCOW_SUPPORTED", "1", "Machine")

เริ่มบริการ Docker ใหม่หลังจากการเปลี่ยนแปลง

Restart-Service docker

ดึงอิมเมจนักเทียบท่าทดสอบ

> docker run -it --rm ubuntu /bin/bash
 root@1440a7fef7e0:/# cat /etc/os-release 
 NAME="Ubuntu"
 VERSION="18.04.1 LTS (Bionic Beaver)"
 ID=ubuntu
 ID_LIKE=debian
 PRETTY_NAME="Ubuntu 18.04.1 LTS"
 VERSION_ID="18.04"
 HOME_URL="https://www.ubuntu.com/"
 SUPPORT_URL="https://help.ubuntu.com/"
 BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
 PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
 VERSION_CODENAME=bionic
 UBUNTU_CODENAME=bionic

 root@1440a7fef7e0:/# exit
 exit

หากต้องการเปลี่ยนกลับไปใช้คอนเทนเนอร์ Windows ที่ใช้งานอยู่ให้รัน:

[Environment]::SetEnvironmentVariable("LCOW_SUPPORTED", "$null", "Machine")

เพลิดเพลินกับการใช้งานคอนเทนเนอร์ Linux และ Windows บน Windows Server 2019 ส่งความคิดเห็นถึงเราในกรณีที่มีปัญหาใด ๆ

หนังสือเพื่อการเรียนรู้การบริหาร Kubernetes:

  • หนังสือศึกษา Kubernetes ที่ดีที่สุด

ตรวจสอบด้วย:

  • วิธีติดตั้งแอพพลิเคชั่นจากบรรทัดคำสั่งของ Windows
  • วิธีอนุญาต ICMP Echo Reply บน Windows Server 2019
  • วิธีเปิดใช้งาน Remote Desktop Protocol (RDP) บน Windows Server 2019
  • วิธีรัน Linux บน Windows Server 2019 ด้วย WSL

บทความที่เกี่ยวข้อง