1. 程式人生 > >.net core+Docker部署

.net core+Docker部署

圖片 ejs 目錄 runt png run 分享 mvc sta

1.安裝Docker CE

服務器Ubuntu 16

http://docs.docker-cn.com/engine/installation/linux/docker-ce/ubuntu/#%E5%AE%89%E8%A3%85-docker-ce

$ sudo apt-get remove docker docker-engine docker.io
$ sudo apt
-get update
$ sudo apt-get install     apt-transport-https     ca-certificates     curl     software-properties-common
$ sudo add
-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable"
$ sudo apt-get update
$ sudo apt
-get install docker-ce

測試docker是否安裝成功

 $ sudo docker run hello-world

2.新建.Net Core Mvc的項目

  • 使用vs或者命令行創建mvc項目
  • 添加Dockerfile
FROM dukecheng/aspnetcore:aspnetcore-runtime-2.2
.0 ARG source WORKDIR /app EXPOSE 80 COPY ${source:-obj/Docker/publish} . ENTRYPOINT ["dotnet", "CoreApp.dll"]

如果你使用vs創建的項目那麽需要上傳到linux,命令行我建議直接在linux上執行

3.build你的項目

新建一個build.sh的文件(路徑在CoreApp的目錄下../CoreApp/build.sh 註意是有解決方案sln的文件夾)添加以下內容

workspace=`pwd`
docker run --rm -v ~/.cache:/root/.cache -v ~/.config:/root/.config -v ~/.gnupg:/root/.gnupg -v ~/.local:/root/.local -v ~/.npm:/root/.npm -v `pwd`/CoreApp:/data digitallyseamless/nodejs-bower-grunt bash -c "
bower install && npm install" docker run --rm -v ~/.dotnet:/root/.dotnet -v ~/.nuget:/root/.nuget -v ${workspace}:/src --workdir /src dukecheng/aspnetcore:aspnetcore-sdk-2.2.100 bash -c "dotnet restore ./CoreApp.sln && rm -rf ./CoreApp/CoreApp/obj/Docker/publish && dotnet publish ./CoreApp/CoreApp.csproj -c Release -o ./obj/Docker/publish"

執行build.sh

sh build.sh

技術分享圖片

4.生成docker鏡像

docker build -t aspnetapp .

可以使用docker images 查看本地所有鏡像

技術分享圖片

5.運行docker鏡像

docker run -d -p 8080:80 --name coreapp aspnetapp

-d 是後臺執行的意思

-p 是端口映射 物理端口:docker容器端口

--name 是容器名字

aspnetapp 是鏡像的名字

技術分享圖片

.net core+Docker部署