.net core+Docker部署
阿新 • • 發佈:2018-12-14
圖片 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部署