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

浙公网安备 33010602011771号