Asp.Net Core 發布到 Docker(Linux Centos 虛擬機,使用Dockerfile)


實踐一下 Asp.Net Core (基於.net core 2.2)部署到Docker

一、准備工作:

1. 使用Virtualbox創建一個Centos系統的虛擬機,並安裝docker和vim

2. 配置好端口(如下圖,后面需要使用)

 

3. 准備一個網站發布包(我采用的默認的Asp.Net Core MVC),windows發布時的配置(也可以在linux上進行發布),將發布包放入linux虛擬機(我的路徑是:/root/Root/DefaultHttp/publish)

 4. 測試一下發布包是否正常(可選,需要在linux安裝.net core sdk,如果版本較低,需要使用sudo yum update命令更新)

dotnet publish/DefaultHttp.dll

如圖顯示,是正常的

5. 創建Dockfile文件(路徑:/root/Root/DefaultHttp/,即和publish文件夾同級),並把下面的代碼放入文件中。

FROM mcr.microsoft.com/dotnet/core/aspnet:2.2
WORKDIR /app
EXPOSE 5000
# 一般情況下必須開放
EXPOSE 80
# 如果使用https,記得打開443端口,但是一般不用
#EXPOSE 443
 
COPY publish/ /app
ENTRYPOINT ["dotnet", "DefaultHttp.dll"]

說明:

       asp.net core 鏡像:https://hub.docker.com/_/microsoft-dotnet-core-aspnet/ 

至此,准備工作完成。

二、創建鏡像

1. 切換至 /root/Root/DefaultHttp/

cd Root/DefaultHttp/

2. 執行以下命令,使用Dockerfile創建鏡像(鏡像名稱為:firsthttp/default)

docker build -t firsthttp/default .

3. 執行docker images 命令查看生成的鏡像

 

三、運行容器

1. 執行以下命令,運行容器(linux虛擬機的8010端口映射docker容器的80端口)

docker run -d -p 8010:80 -p 5000:5000 --name first firsthttp/default

2. 查看運行中的容器

docker ps

3. 查看容器日志

docker logs -f ef5d4c3870f1

為什么需要這個步驟?

查看容器運行的日志信息,防止發生錯誤,也可以知道容器開放的端口(這里是80,映射到linux虛擬機是8010端口,映射到主機也是8010端口(第一步的准備工作中有))

4. 在linux虛擬機查看結果,執行以下命令

curl http://localhost:8010

5. 在主機訪問

至此,部署完成。

四、刪除容器和鏡像

 #刪除容器 docker rm 容器ID #刪除鏡像 docker rmi firsthttp/default 

五、總結:

1. Docker容器對外發布的是80端口(需要使用docker logs命令查看)

2. 執行docker run 命令運行容器時,可以添加 -v 參數,映射指定的數據卷(這里是publish文件夾),下次更新程序時,會自動更新到docker,只需要重啟docker即可(docker restart firsthttp/default)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM