docker部署netcore 项目

1,创建一个web应用程序,启用docker支持

 

2,生成dockerfile如下

#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.

FROM mcr.microsoft.com/dotnet/aspnet:5.0-buster-slim AS base
WORKDIR /app
EXPOSE 80

FROM mcr.microsoft.com/dotnet/sdk:5.0-buster-slim AS build
WORKDIR /src
COPY ["dockerdemo/dockerdemo.csproj", "dockerdemo/"]
RUN dotnet restore "dockerdemo/dockerdemo.csproj"
COPY . .
WORKDIR "/src/dockerdemo"
RUN dotnet build "dockerdemo.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "dockerdemo.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "dockerdemo.dll"]

项目文件目录如下:

 

可以看到Dockerfile和工程文件dockerdemo.csproj在同一个目录

跟Dockerfile里的配置(红色部分)不一致,所以需要将文件Dockerfile移动到上一级目录

3、利用winscp工具将项目上传到linux服务器

 

4、用xshell工具登录到linux服务器,并进入得到Dockerfile所在的目录

5、构建镜像

  docker build -t dockerdemo1 .  

  意义后面又个点

      

   这样就构建成功了。

     

 6、运行docker镜像

  docker run -it -p 5001:80 749be68ef806

       

 7、测试访问

 

 

 

 8、如果不能访问,需要检查一下防火墙(我用的是腾讯的“轻量应用服务器”)

配置开放所用端口,或特定的端口。

 

附:linux下查看/开启防火墙端口命令

#查询端口哦是否开发
firewall-cmd --query-port=5001/tcp
#开放端口
firewall-cmd --permanent --add-port=5001/tcp
#移除端口
firewall-cmd --permanent --remove-port=5001/tcp
#重启防火墙
firewall-cmd --reload

 

posted @ 2021-09-21 21:10  hello_stone  阅读(377)  评论(0)    收藏  举报