window server 2019安裝docker


參考資料:

https://bbs.huaweicloud.com/blogs/176232

https://www.cnblogs.com/yankliu-vip/p/Docker-on-Windows-Server-2019.html

一、聯網安裝

官方提供的方法

(1)步驟一:

Install-Module -Name DockerMsftProvider -Repository PSGallery -Force 
#這一步驟是安裝DockerMsftProvider模塊,如沒有NuGet程序,則會提示你安裝,NuGet是包管理程序,這個必須要你安裝,無法跳過

(2)步驟二:

Install-Package -Name docker -ProviderName DockerMsftProvider 
#利用上述安裝的模塊來安裝docker包,這一步會下載一個docker的zip包

總結一下:按照官網這種方式來安裝,首先你要安裝NuGet程序,然后安裝DokcerMsftProvider,最后利用DokcerMsftProvider來安裝docker,這一步還是會下載docker的zip包,最最主要的就是這最后一步,前面下載程序沒什么好說的,這最后一步到底干了什么?其實主要做了如下5件事情:

(1)下載docker的zip包(里面是一堆的exe程序,包含了服務端dockerd和客戶端docker等一系列的docker程序)

(2)解壓docker zip包到 C:\Program Files\Docker 目錄,創建 C:\ProgramData\Docker\config 目錄

(3)添加環境path

C:\Program Files\Docker  #將這個路徑添加到系統環境變量,其實就是為了能夠在 PowerShell中全局執行docker命令

(4)利用winserver的服務器管理器安裝Containers(容器)功能,此功能不安裝,無法啟動docker服務端

(5)啟動docker服務端,並將其注冊為服務,這一步需要確保 C:\ProgramData\Docker\config 下具有 daemon.json 文件

OK !到這里我們清楚了,它在這個安裝過程中具體干了些什么事情,那么我們還有必要安裝NuGet和DokcerMsftProvider這個2玩意兒?沒必要,我們完全可以自己下載docker的zip包,手動實現這些過程!當然,你要是一些列命令敲下來啪啪啪就全部安裝好了,那么你也沒必要看這個文章了,作者照着敲了一堆命令,不是這個程序包下不到,就是那個程序包下不到,也是頭疼的很。

二、離線安裝

環境要求:winserver 2019 標准版 或 winserver 2016 標准版一台

資源要求:docker離線包,本文基於docker-19-03-5.zip進行安裝

docker zip包下載地址: https://dockermsft.blob.core.windows.net/dockercontainer/docker-19-03-13.zip

步驟一:

解壓 docker-19-03.zip到 C:\Program Files\Docker 下,其中Docker目錄需要手動創建

步驟二:

創建 C:\ProgramData\Docker\config 目錄,在config目錄下創建 daemon.json 文件,其內容可為
{
"insecure-registries":["192.168.1.135:5000"]
}
作者在此處加了一個本地的鏡像倉庫,請根據實際情況修改,為空也可以。

步驟三:

添加系統環境path環境變量:我的電腦 > 屬性 > 高級系統設置 > 環境變量 > 新建

步驟四:將dockerd注冊為服務

以管理員身份進入CMD執行如下指令:

cd C:\Program Files\Docker  # 進入dockerd.exe所在目錄路徑
dockerd --register-service  # 將dockerd 注冊為服務

步驟五:安裝Containers功能,安裝需要重啟

 步驟六:開始玩docker

三、在window docker中運行linux容器

Windows上的Docker只運行Windows容器,要在Windows Server上使用Linux容器,需要使用Docker Enterprise Edition Preview,其中包含用於運行Docker Linux容器的完整LinuxKit系統。

 啟用LinuxKit系統以運行Linux容器

步驟一:

# Set LCOW_SUPPORTED Variable to 1 for enabled
# powershell執行以下命令
[Environment]::SetEnvironmentVariable(
"LCOW_SUPPORTED", "1", "Machine")

步驟二:

# Enable Experimental Features in Dockerd daemon.conf
# powershell執行以下命令
$configfile
= @" { "experimental": true } "@

$configfile|Out-File -FilePath C:\ProgramData\docker\config\daemon.json -Encoding ascii -Force

步驟三:

在Docker使用 Linux Container時,仍然需要使用Linux kernal。

You should use the latest LCOW release here

Invoke-WebRequest -Uri "https://github.com/linuxkit/lcow/releases/download/v4.14.35-v0.3.9/release.zip" -UseBasicParsing -OutFile release.zip       # 下載

Expand-Archive release.zip -DestinationPath "$Env:ProgramFiles\Linux Containers\."    # 解壓

舉例:

Redis on Docker Linux Container#

現在我們即可使用 Windows Container或者Linux Container,但是由於目前基於Windows Container只能運行Windows應用程序,所以我們需要使用--platform選擇一種容器類型,參考如下

docker run --platform=linux --name redis-server -d -p 6379:6379 --restart=always redis

References

  1. Posted on February 12, 2019 by Ben Thomas,Getting started with Linux Containers on Windows Server 2019
  2. November 16, 2018 by Andy Syrewicze (Chief Editor)
    ,How to Run 🐧 Linux Containers on Windows Server 2019
  3. posted @ 2017-02-10 11:40 北京的201個藍天,Windows Container 和 Docker:你需要知道的5件事

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM