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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Docker在Linux上运行NetCore系列(一)配置运行DotNetCore控制台

發布時間:2025/7/14 linux 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Docker在Linux上运行NetCore系列(一)配置运行DotNetCore控制台 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Docker在Linux上運行NetCore系列(一)配置運行DotNetCore控制臺 原文:Docker在Linux上運行NetCore系列(一)配置運行DotNetCore控制臺

轉發請注明此文章作者與路徑,請尊重原著,違者必究。

?

?

系列文章:https://www.cnblogs.com/alunchen/p/10121379.html

本篇文章操作系統信息

????? Linux:ubuntu 16.04.3 amd64

?

查看NetCore支持的Linux系統

????? NetCore不是支持Linux的所有系統,只支持部分,所以在Linux上安裝NetCore之前要查看系統與版本是否支持NetCore。

????? 查看NetCore2.0以上各個版本在Linux支持的系統及版本:

https://github.com/dotnet/core/blob/master/release-notes/2.0/2.0-supported-os.md

https://github.com/dotnet/core/blob/master/release-notes/2.1/2.1-supported-os.md

https://github.com/dotnet/core/blob/master/release-notes/2.2/2.2-supported-os.md

?

安裝Docker

????? 安裝docker,參考:https://segmentfault.com/a/1190000014066388

?

開始使用Docker在Linux上運行NetCore

????? 回想一下我們平常做開發。流程都是使用Windows操作系統,并且使用宇宙最好IDE-VS,來創建項目、發布、運行。

????? 這篇文章,主要講述怎么在linux上運用docker來運行net core程序 。也會使用我們一般會使用到的流行方法去運行net nore,一般的步驟如下:

在Windows上創建項目->修改dockerfile文件->復制項目到Linux系統->運行dockerfile并創建鏡像->在docker容器中運行鏡像。

?

創建項目并且生成Dockerfile???????????????? ?

????? 現在,使用VS2017創建一個控制臺項目,并添加Docker的支持,需要注意的是,添加Docker支持時需要選擇Linux環境。具體怎么添加支持,請查看下面的截圖。

????? 右鍵項目->添加->容器業務流程協調程序支持->選擇【Docker Compose】->選擇【Linux】

圖一:

?

圖二:

?

圖三:

?

????? 創建完成后,可以看到項目的架構多了文件Dockerfile,與docker-compose。

?

????? 主要看Dockerfile,它是描述了整個項目從編譯到運行所依賴的環境,怎么去運行此程序。至于docker-compose目錄,可以刪除。其作用是在告訴VS所要運行docker的入口點,并且可以定義多個不同容器中的依賴關系來運行。這里不講述docker-compose。

?

修改Dockerfile文件???????????????????? ?

????? 修改下面的Dockerfile文件,修改了路徑,把項目文件夾去掉了。因為運行Dockerfile的時候,是在Dockerfile所在的文件夾內運行。具體每行代表什么,后面會說明。

?

????? 修改完成了Dockfile文件后,下一步就是要把代碼放到Linux鏡像中了。

?

在Linux使用Docker運行程序的方式?????????????????????????

????? 現在想到有3種方式運行在Linux上。第一種可以通過復制當前的項目源代碼到Linux中編譯并且運行。第二種是上傳本地代碼,然后在Linux使用git clone運行。第三種是在另外一臺Linux成功構建鏡像后,上傳到線上倉儲,最后在目標Linux下載鏡像并在倉庫中運行。

????? 第一種與第二種類似,都是需要獲取代碼,只是獲取代碼方式不同而已。第三種是通過線上發布再拉取的做法。

下面我們主要討論第一種。第二、三種在另外一篇文章使用使用到。

?

在Docker中運行Dockfile生成鏡像??????????????????????????

????? 首先需要把代碼copy到linux中。這里通過WinSCP工具復制項目文件到Linux系統中,例如Windows下有下面文件:

?

????? 復制到Linux下,通過putty工具查看文件夾,已經復制成功了。

?

????? 開始構造鏡像image:運行命令【sudo docker build -t consoleappdockerlinux2-cmd .

????? 命令中,【consoleappdockerlinux2-cmd】代碼鏡像名稱,可以修改成自己所需要的名稱。也可以為鏡像添加tag,修改【consoleappdockerlinux2-cmd】成【consoleappdockerlinux2-cmd:1.0】為鏡像打上1.0的tag標簽。命令最后面的【.】號是必要的,是dockerfile在當前目錄運行docker的意思。詳細命令可查看:http://www.runoob.com/docker/docker-build-command.html。

????? 需要說明的是【sudo】命令是用管理員身份運行,所以要輸入密碼。然后運行docker。

????? 因為按照配置docker的時候使用了鏡像加速,所以下載.net core鏡像很快。如果是國外鏡像,會timeout超時,所以建議都配上。

?

配置鏡像加速器?????????????????????

????? 關于鏡像加速,可以按照阿里云的教程,登錄賬號:https://cr.console.aliyun.com/cn-shenzhen/mirrors。每個賬號的加速地址應該不一樣。下面內容截取阿里云的教程:

運行鏡像并添加到容器中???????????

????? 使用【sudo docker images】查看是否存在我們的鏡像 consoleappdockerlinux2-cmd

?

????? 可以看到已經安裝鏡像成功了,我們現在開始運行我們的鏡像吧:【sudo docker run 鏡像id

????? 可以看到我們真的成功了!

?

關于容器的說明??????????????

????? 眾所周知,Docker有三大概念:鏡像、容器、倉庫。鏡像是容器與倉庫的橋梁,它們都需要用到鏡像。上面我們把鏡像添加到容器中運行,當使用【docker container ls】時,不會看到任何的容器,因為我們的控制臺程序運行結束了。

????? 所以如果要看到所有的容器,無論是運行中還是停止的,可使用命令【sudo docker ps -a】。

?

詳細介紹Dockerfile各行代表的意思??????????

?

?

?

?

演示更新版本?????????????????????????????

????? 安裝完成程序之后,一般都需要更新版本。這里再簡單地演示一次。

????? 在代碼中更新了程序,控制臺輸出改成 “Hello World! 這是我第一次運行在Docker Linux中。 Version 2”。

????? 為了演示更直觀,首先將鏡像 consoleappdockerlinux2-cmd打上tag,1.0版本。【sudo docker tag consoleappdockerlinux2-cmd consoleappdockerlinux2-cmd:1.0

?

????? 將程序代碼復制到原本的路徑上,然后運行命令構建Docker鏡像【sudo docker build -t consoleappdockerlinux2-cmd:2.0 .】。這里指明構建2.0的tag。

成功后,運行【sudo docker images】可以查看到2.0版本的鏡像了。

?

????? 使用【docker run 鏡像id】添加到容器中運行鏡像,下面看到運行成功了,并且Version 2也打印出來了。

?

????? 在上面,有沒有發現問題。部署新代碼運行鏡像時需要指定鏡像id,即使用【docker run 鏡像id】的命令。而且每當重新編譯新版本程序,都會重新生成一個鏡像id,那么就矛盾了,每次都需要找到新版本的鏡像id才會把鏡像添加到容器中運行?

????? 有什么解決辦法?不指定鏡像id是否可以?

????? 所以docker run提供了運行 鏡像名稱+標簽的命令:【sudo docker run consoleappdockerlinux2-cmd:latest

?

????? 所以你每次運行上面的命令,都是最新版本的代碼。

?

?

系列文章

Docker在Linux/Windows上運行NetCore文章系列

?

可以關注本人的公眾號,多年經驗的原創文章共享給大家。

posted on 2019-01-04 00:07 NET未來之路 閱讀(...) 評論(...) 編輯 收藏

轉載于:https://www.cnblogs.com/lonelyxmas/p/10217688.html

總結

以上是生活随笔為你收集整理的Docker在Linux上运行NetCore系列(一)配置运行DotNetCore控制台的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。