日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

Visual Studio 2017 调试 windows server 2016 Docker Container

發(fā)布時間:2023/12/18 windows 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Visual Studio 2017 调试 windows server 2016 Docker Container 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

  網(wǎng)上很多文章都是在win10下,用Docker for windows工具進(jìn)行Docker的安裝部署的。用知道windows server 2016已經(jīng)原生支持Docker了,其windows Container已經(jīng)和Linux下的內(nèi)核技術(shù)是一致的了,況且最重要的原因就是Docker容器的部署肯定是在Windows server 上面的。所以何不嘗個鮮,直接用windows server 2016上裝個visual studio 2017來進(jìn)行開發(fā)呢。

一、Windows Server 2016安裝Docker

  在windows server 2016上面安裝Docker十分的簡單,不需要像win10一樣,裝個Dokcer for windows工具,也不需要開啟Hyper-V建個Linux虛擬機(jī)了。直接在Shell命令下面運(yùn)行如下命令:

Install-Module -Name DockerMsftProvider -Repository PSGallery -Force Install-Package -Name docker -ProviderName DockerMsftProvider Restart-Computer -Force

可以參考?Windows Containers on Windows Server

  重啟完電腦,運(yùn)行docker version會彈出如下界面,說明Docker已經(jīng)安裝完成

二、在ASP.NET Web Application項(xiàng)目上啟用Docker的支持(注意不是.net core應(yīng)用)

  使用Visual Studio 2017新建一個ASP.NET?Web Application項(xiàng)目

在模板上隨便選一個,這里不像.net core程序會有直接的Enable Docker Support的選項(xiàng)

沒關(guān)系,我們可以直接在項(xiàng)目右鍵vs2017-》Add-》Docker Support

就會多出如下文件

基本上都是docker-compose和Dockerfile構(gòu)建Docker容器用的。

三、啟用Docker調(diào)試

如果這時按F5進(jìn)行選擇Docker進(jìn)行調(diào)試,會出錯,主要是docker-compose命令未找到。在Docker官網(wǎng)上找到了如下的說法:

Docker for Mac,?Docker for Windows, and?Docker Toolbox?include Docker Compose, so most Mac and Windows users do not need to install Docker Compose separately.

If you are running the Docker daemon and client directly on?Microsoft Windows Server 2016?(with?Docker EE for Windows Server 2016), you?do?need to install Docker Compose.

To do this, start an “elevated” PowerShell (run it as administrator). Search for PowerShell, right-click, and choose?Run as administrator. When asked if you want to allow this app to make changes to your device, click?Yes.

Run the following command to download Docker Compose, replacing?$dockerComposeVersion?with the specific version of Compose you want to use:

Invoke-WebRequest "https://github.com/docker/compose/releases/download/$dockerComposeVersion/docker-compose-Windows-x86_64.exe" -UseBasicParsing
-OutFile $Env:ProgramFiles\docker\docker-compose.exe

For example, to download Compose version 1.12.0, the command is:

none Invoke-WebRequest "https://github.com/docker/compose/releases/download/1.12.0/docker-compose-Windows-x86_64.exe" -UseBasicParsing -OutFile $Env:ProgramFiles\docker\docker-compose.exe

Now, run the executable to install Compose.

參考:?Install Docker Compose,我們先找一下docker-compose的最新版本https://github.com/docker/compose/releases,發(fā)現(xiàn)是1.13.0,那么那句話可以直接改為

Invoke-WebRequest "https://github.com/docker/compose/releases/download/1.13.0/docker-compose-Windows-x86_64.exe" -UseBasicParsing -OutFile $Env:ProgramFiles\docker\docker-compose.exe

滿心期待的去運(yùn)行F5,結(jié)果還是報(bào)錯:

ERROR: client version 1.22 is too old. Minimum supported API version is 1.24, please upgrade your client to a newer version

查了一下,原來如果你使用Docker 1.13以上版本,需要將docker-compose.yml中的version: '2'修改為version: '2.1'也就是這里的version

真的是一波三折,總算是沒問題了,編譯也能通過了??墒钱?dāng)調(diào)試F5的時候,卻偏偏又出現(xiàn)遠(yuǎn)程調(diào)試錯誤。。。

這個時候,運(yùn)行docker ps的命令,可以看到我們的容器已經(jīng)啟動了

我們查看一下容器IP

docker inspect --format="{{.NetworkSettings.Networks.nat.IPAddress}}" $CONTAINER_ID

然后直接在游覽器中訪問,已經(jīng)可以看到網(wǎng)站在運(yùn)行了。

這個真的是蠻坑的地方,網(wǎng)上也沒有相關(guān)資料,倒是在stackoverflow發(fā)現(xiàn)相關(guān)問題:Running Visual Studio Remote Debugger in Windows Container (Docker managed),但是沒什么用。最后想了半天,原來是server版的限制比較高,必須在防火墻中開發(fā)端口,或者直接關(guān)掉防火墻,就OK了。

?

?

參考:

BUILD AND RUN YOUR FIRST DOCKER WINDOWS SERVER CONTAINER

Docker的Windows容器初體驗(yàn)

Docker容器環(huán)境下ASP.NET Core Web API應(yīng)用程序的調(diào)試

轉(zhuǎn)載于:https://www.cnblogs.com/Hai--D/p/6819029.html

總結(jié)

以上是生活随笔為你收集整理的Visual Studio 2017 调试 windows server 2016 Docker Container的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。