ASP.NET Core 2.1 使用Docker運(yùn)行的方法步驟
1.新建一個(gè) ASP.NET Core 2.1 項(xiàng)目
然后運(yùn)行一下項(xiàng)目,確保我們剛剛建立的項(xiàng)目可以正常運(yùn)行。
2.編寫(xiě) Dockerfile
新建一個(gè)文本文件,命名為 Dockerfile
FROM microsoft/dotnet:2.1-aspnetcore-runtime WORKDIR /app COPY . . EXPOSE 80 ENTRYPOINT ["dotnet", "AspNetCore.Docker.dll"]
這里我們需要用到官方的鏡像:microsoft/dotnet:2.1-aspnetcore-runtime
如果要嘗試更小的鏡像,可以試試 microsoft/dotnet:2.1-aspnetcore-runtime-alpine
,這鏡像使用了alpine
一款精簡(jiǎn)版極小的linux,但是隨之而來(lái)的就是閹割了一些功能,實(shí)際使用的時(shí)候需要測(cè)試,比如國(guó)際化支持,它默認(rèn)在這個(gè)鏡像里面沒(méi)有開(kāi)啟,需要配置環(huán)境變量來(lái)開(kāi)啟。
需要設(shè)置Dockerfile的如下屬性,保證其能復(fù)制到發(fā)布目錄:
3.構(gòu)建Docker鏡像
我們將鏡像命名為 :aspnetcoredocker
進(jìn)入到發(fā)布文件目錄,執(zhí)行命令便可打包鏡像:
docker build -t aspnetcoredocker .
我們可以編寫(xiě) 發(fā)布+構(gòu)建 的腳本。
Windows:
文件名:build.bat
@echo off echo "Windows Docker build" cd ../AspNetCore.Docker dotnet publish -c Release -o ../publish cd ../publish echo "publish success" docker build -t aspnetcoredocker .
文件名:Linux:
build.sh
#!/bin/bash echo Linux Docker build cd ../AspNetCore.Docker dotnet publish -c Release -o ../publish cd ../publish echo publish success docker build -t aspnetcoredocker .
文件夾結(jié)構(gòu)如下圖:
執(zhí)行構(gòu)建:
./build.sh
構(gòu)建成功后可以通過(guò) docker images
命令查詢到我們構(gòu)建的鏡像:
若在linux下執(zhí)行sh腳本時(shí),遇到錯(cuò)誤“-bash: ./build.sh: /bin/bash^M: bad interpreter: No such file or directory“,請(qǐng)通過(guò)vim/vi編輯sh腳本,按:建,輸入 set ff=unix
,然后回車、wq保存即可
4.運(yùn)行鏡像
通過(guò)命令運(yùn)行
docker run --name=aspnetcoredocker -p 7777:80 -d aspnetcoredocker
--name
:指定容器名稱
-p
:指定容器端口
-d
:指定容器 后臺(tái)運(yùn)行
出現(xiàn)一長(zhǎng)串字符串,便是表示運(yùn)行成功:
我們也可以通過(guò) docker ps
命令,查詢我們正在運(yùn)行的容器:
我們還可以通過(guò) docker logs <容器名稱或者id>來(lái)查看啟動(dòng)日志:
5.驗(yàn)證訪問(wèn)
我們可以通過(guò) curl
命令來(lái)直接訪問(wèn)我們?nèi)萜鲉?dòng)的asp.net core 網(wǎng)站:
或者直接通過(guò)瀏覽器訪問(wèn):
至此,我們通過(guò)Docker運(yùn)行asp.net core 2.1應(yīng)用程序就結(jié)束了。
6.資料
本文所用代碼:https://github.com/stulzq/BlogDemos/tree/master/AspNetCore.Docker
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 詳解ASP.NET Core Docker部署
- Centos7+Docker+Jenkins+ASP.NET Core 2.0自動(dòng)化發(fā)布與部署的實(shí)現(xiàn)
- Linux服務(wù)器下利用Docker部署.net Core項(xiàng)目的全過(guò)程
- ASP.NET Core+Docker+Jenkins實(shí)現(xiàn)持續(xù)集成的完整實(shí)例
- .Net Core自動(dòng)化部署之利用docker版jenkins部署dotnetcore應(yīng)用的方法
- 詳解.NET Core+Docker 開(kāi)發(fā)微服務(wù)
- docker部署Asp.net core應(yīng)用的完整步驟
- 詳解ASP.NET Core 網(wǎng)站在Docker中運(yùn)行
- Docker容器運(yùn)行ASP.NET Core的實(shí)現(xiàn)步驟
- Docker結(jié)合.Net Core的初步使用教程
相關(guān)文章
ASP.NET?Core項(xiàng)目使用xUnit進(jìn)行單元測(cè)試
這篇文章介紹了ASP.NET?Core項(xiàng)目使用xUnit進(jìn)行單元測(cè)試的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03FileUpload使用Javascript檢查擴(kuò)展名是否有效實(shí)現(xiàn)思路
在JavaScript獲取FileUpload控件的文件路徑,并取得路徑中的文件擴(kuò)展名,再與陣列中的擴(kuò)展名比較,如果存在,說(shuō)明上傳的文件是有效的,反之無(wú)效,感興趣的朋友可以了解下,或許對(duì)你有所幫助2013-02-02充分利用ASP.NET的三種緩存提高站點(diǎn)性能的注意方法
充分利用ASP.NET的三種緩存提高站點(diǎn)性能的注意方法...2007-09-09利用ASP.NET MVC+Bootstrap搭建個(gè)人博客之打造清新分頁(yè)Helper(三)
這篇文章主要介紹了利用ASP.NET MVC+Bootstrap搭建個(gè)人博客之打造清新分頁(yè)Helper(三)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06asp.net通過(guò)動(dòng)態(tài)加載不同CSS實(shí)現(xiàn)多界面
這篇文章主要介紹了asp.net通過(guò)動(dòng)態(tài)加載不同CSS實(shí)現(xiàn)多界面,需要的朋友可以參考下2014-12-12VS2012實(shí)現(xiàn)簡(jiǎn)單登錄界面
這篇文章主要為大家詳細(xì)介紹了VS2012實(shí)現(xiàn)簡(jiǎn)單登錄界面,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06