Windows Server 2016 安裝 Docker的過程及遇到問題
必備條件
若要在 Windows Server 上運行容器,需要一臺運行 Windows Server(半年頻道)、Windows Server 2019 或 Windows Server 2016 的物理服務(wù)器或虛擬機。
建議優(yōu)先更新服務(wù)器
Windows Server 2016已經(jīng)支持Docker技術(shù),官方也給出了資料:
https://docs.microsoft.com/zh-cn/virtualization/windowscontainers/quick-start/quick-start-windows-server
參考此鏈接大體上不會有問題,但是坑還是有一個大坑。
使用 PowerShell 運行 sconfig,然后選擇 6,然后輸入 A 下載所有更新:


安裝 Docker
若要在 Windows Server 上安裝 Docker,可以使用由 Microsoft 發(fā)布的 OneGet 提供程序 PowerShell 模塊(稱為 DockerMicrosoftProvider)。 此提供程序啟用 Windows 中的容器功能,并安裝 Docker 引擎和客戶端。 以下是操作方法:
打開提升的 PowerShell 會話,從 PowerShell 庫安裝 Docker-Microsoft PackageManagement 提供程序。
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
如果系統(tǒng)提示安裝 NuGet 提供程序,還請鍵入 Y 進行安裝。
使用 PackageManagement PowerShell 模塊安裝最新版本的 Docker。
Install-Package -Name docker -ProviderName DockerMsftProvider
PowerShell 詢問是否信任包源“DockerDefault”時,鍵入 A 以繼續(xù)進行安裝。
在安裝完成后,請重啟計算機。
Restart-Computer -Force
如果希望稍后更新 Docker,請執(zhí)行以下操作:
- 使用
Get-Package -Name Docker -ProviderName DockerMsftProvider - 查看已安裝的版本 使用
Find-Package -Name Docker -ProviderName DockerMsftProvider查找當(dāng)前版本 準備就緒后,使用Install-Package -Name DockerProviderName DockerMsftProvider -Update -Force進行升級,隨后執(zhí)行Start-Service Docker
驗證
輸入 docker version:
PS C:\Users\Administrator> docker version
Client: Docker Engine - Enterprise
Version: 19.03.5
API version: 1.40
Go version: go1.12.12
Git commit: 2ee0c57608
Built: 11/13/2019 08:00:16
OS/Arch: windows/amd64
Experimental: falseServer: Docker Engine - Enterprise
Engine:
Version: 19.03.5
API version: 1.40 (minimum version 1.24)
Go version: go1.12.12
Git commit: 2ee0c57608
Built: 11/13/2019 07:58:51
OS/Arch: windows/amd64
Experimental: false
至此,Docker安裝完成。接下來,你可以下載一些Docker文件來玩一玩了,比如執(zhí)行:
docker run microsoft/dotnet-samples:dotnetapp-nanoserver
這個例子會自動下載 Docker 文件并運行,但是下載速度奇慢無比,希望你的可以下載成功。
接下來的入門,可以參考此文:
https://docs.microsoft.com/zh-cn/virtualization/windowscontainers/quick-start/quick-start-images
遇到的問題
無法使用install-module:
PS C:\Users\Administrator> Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
Get-PSGalleryApiAvailability : PowerShell 庫當(dāng)前不可用。請稍后再試。
所在位置 C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.psm1:1711 字符: 9
+ Get-PSGalleryApiAvailability -Repository $Repository
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Get-PSGalleryApiAvailability],InvalidOperationException
+ FullyQualifiedErrorId : PowerShellGalleryUnavailable,Get-PSGalleryApiAvailabilityGet-PSGalleryApiAvailability : PowerShell 庫當(dāng)前不可用。請稍后再試。
所在位置 C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.psm1:4437 字符: 9
+ Get-PSGalleryApiAvailability -Repository $Name
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Get-PSGalleryApiAvailability],InvalidOperationException
+ FullyQualifiedErrorId : PowerShellGalleryUnavailable,Get-PSGalleryApiAvailability
解決方法:
以管理員身份打開powershell,依次輸入以下命令:
$ [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$ Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
$ Install-Module posh-ssh
另外,請保證你的機器可以訪問互聯(lián)網(wǎng)。
PS C:\Users\Administrator> [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
PS C:\Users\Administrator> Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -ForceName Version Source Summary
---- ------- ------ -------
nuget 2.8.5.208 https://onege... NuGet provider for the OneGet meta-package managerPS C:\Users\Administrator> Install-Module posh-ssh
參考資料:
[1] https://cloud.tencent.com/developer/article/1378641
[2] https://docs.microsoft.com/zh-cn/virtualization/windowscontainers/quick-start/set-up-environment?tabs=Windows-Server
到此這篇關(guān)于Windows Server 2016 安裝 Docker的文章就介紹到這了,更多相關(guān)Windows Server 2016 安裝 Docker內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信