windows 容器方案
1. Windows Container 執行時
Windows Container提供2種執行時: Window Server Contianer
和 Hyper-V Container
。
其中, Windows Server Container
與Linux Contianer容器模型一致,容器與底層作業系統共享核心,所以它們會很輕量而且執行迅速。當你在容器中啟動一個程序的時候,這個程序實際上執行在宿主機上,可以使用工作管理員或者Powershell 命令 Get-Process 獲取到這個程序的資訊。
Hyper-V Contianer
則是一種全新的容器執行時模型,它將在宿主機上啟動一個很小的虛擬機器,所以容器將具備自己獨立的作業系統核心。當你在Hyper-V Container中啟動程序的時候,宿主機對這個程序是無感知的。Hyper-V Container提供了更好的隔離性,而且這個虛擬機器被裁減得非常小,所以效能仍然會不錯。
在Windows Server 2016上,你可以在2種不同的執行時之間選擇;而Windows 10上雖然也提供了容器服務,但是隻能執行Hyper-V Contianer。
2. Docker for Windows
2.1. windows 10
windows 10 可安裝Docker-CE, ofollow,noindex" target="_blank">Docker Community Edition for Windows
2.2. WIN SERVER 2016
WIN SERVER 2016 可安裝docker-EE win server 2016可以通過以下命令安裝 docker-ee
Install-Module DockerMsftProvider -Force Install-Package Docker -ProviderName DockerMsftProvider -Force
上述命令執行完成之後,需要使用以下命令檢查一下是否需要重啟系統。
(Install-WindowsFeature Containers).RestartNeeded
如果需要重啟的話,可執行以下命令重啟系統
Restart-Computer
其他
windows 其他的老版本的系統可通過Docker Toolbox下載安裝
3. .net core 2.1 docker 執行
3.1. 環境
伺服器
:win server2016 Docker-EE 開發環境
:Windows 10 專業版 .net core
: 2.1.402
開發環境搭建
下載並按照.net core sdk在開發機器上: .net core SDK下載地址
按照完成後可執行以下命令檢視dotnet版本:
dotnet --version
伺服器環境搭建
在win server2016中按照上節方法按照Docker-EE即可
3.2. Demo
在已搭建好的開發機上找一個自己喜歡的路徑,執行以下命令建立webapi專案:
dotnet new webapi -o DockerWebApi
專案建立成功之後,稍作一些改動。
修改埠
這裡修改一下預設埠,使用http協議,8000埠。相關檔案路徑 .\DockerWebApi\Program.cs
,增加下圖中紅框內程式碼指定埠
api修改
然後再改一下預設的介面返回吧,路徑 .\DockerWebApi\Controllers\ValuesController.cs
,將介面返回稍作改動一下
執行
完成以上改動以後,可以DockerWebApi目錄下在執行以下命令執行看下效果
dotnet run
從圖中可以看出一切正常
打包映象
打包映象之前,需要在DockerWebApi目錄下在執行以下命令釋出程式:
dotnet publish
釋出後的路徑在 ockerWebApi\bin\Debug\netcoreapp2.1
目錄下,然後在該目錄下建立Dockerfile檔案,且內容如下:
# 基於microsoft/dotnet:latest構建Docker Image FROM microsoft/dotnet:latest # 建立DockerWebAPI目錄 RUN mkdir /usr/local/src/DockerWebApi # 設定工作路徑 WORKDIR /usr/local/src/DockerWebApi # 將當前資料夾下的所有檔案全部複製到工作目錄 COPY *.* ./ # 向外界暴露8000埠 EXPOSE 8000 # 執行dotnet DockerWebAPI.dll命令 CMD ["dotnet", "DockerWebApi.dll"]
編寫完成Dockerfile之後,就可以打包映象了,命令如下:
docker build -t net_demo:1.0.0 .
啟動容器
將上一步打包好的映象放到伺服器的docker內,然後執行以下命令執行容器:
docker run -d -p 80:8000 --name net_demo net_demo:1.0.0
可以通過 http://101.132.145.15/api/values
訪問我的介面