准備工作:安裝Docker並運行
一,在Docker中調試Asp.net core應用
1,右鍵項目,添加/Docker支持,項目根目錄多自動新增一個名為Dockfile的文件
2,按F5進行高度,首次運行這個過程很漫長,還很有可能不成功,提示信息:C:\Users\Administrator\vsdbg\vs2017u5 exists, deleting,可以如下解決
按提示中的版本到以下地址下載兩個文件
https://vsdebugger.azureedge.net/vsdbg-16-3-10904-1/vsdbg-linux-x64.zip
https://vsdebugger.azureedge.net/vsdbg-16-3-10904-1/vsdbg-linux-musl-x64.zip
,把版本號換成使用的版本號。
不過這和在VS中下載一個樣,慢得不行,我下好了“16.3.10904.1”版本在以下雲盤,需要的自行提取,提取碼:2z1p
https://pan.baidu.com/s/1TSXG0GSbTe8iD5OFXMskaw
下好以后,把vsdbg-linux-x64中的所有文件復制到C:\Users\Administrator\vsdbg\vs2017u5目錄。在vs2017u5目錄中新建一個子文件夾:linux-musl-x64,把vsdbg-linux-musl-x64中的所有文件復制到該目錄。
在linux-musl-x64目錄中新建二個txt文件:success_rid.txt以及success_version.txt,編輯success_rid.txt內容為:linux-musl-x64,編輯success_version.txt內容為使用的版本號:16.3.10904.1。
把這兩個txt文件復制一份到vs2017u5目錄,修改vs2017u5目錄中的success_rid.txt內容為:linux-x64。
重新啟動調試即可。
二,發布Asp.net core程序到Docker.
1,打開一個命令行,利用docker build指令創建鏡像
docker build -t liu:v1 --force-rm -f E:/identity/src\IdentityServer/Dockerfile E:/identity
參數說明:
-t:-tag 設置鏡像標簽,可以用來指定鏡像版本。
--force--rm:強制刪除臨時鏡像
-f:指定Dockfile文件地址
E:/identity:上下文根目錄,此處為解決方案目錄(sln存在目錄)
2,以此鏡像運行一個容器
使用Docker images 指定查詢鏡像ID

使用Docker run指令運行一個容器
docker run -v c:\vol:/app/wwwroot/upload -p 5005:80 -it bea955806474 bash
參數說明:
-v: -volum,掛載本地目錄到Docker容器。 c:\vol為本地目錄,/app/wwwroot/upload為容器目錄。由於容器本身不會持久化存儲數據,必需掛載到本地目錄,以防容器刪除后數據丟失。
-p:端口映射。5005為本機端口,80為容器端口
-it:-input-terminal。開啟一個新的輸入終端。
bea955806474:鏡像ID
bash:運行的容器指令,如果Dockerfile沒有指定ENTRYPOINT則直接執行該指令,如果有指定,則將該指定加在ENTRYPOINT后。
run完成后,使用Docker ps指令查看正在運行的容器。直接訪問http://localhost:5005即可。
