Docker部署.net core项目

2020-08-17  本文已影响0人  异步木依
  1. 发布项目,运行命令:
dotnet publish -c Release -o published//在发布模式(默认为调试模式)下生成应用程序
  1. 在published 文件夹添加 Dockerfile文件
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build-env
WORKDIR /app

# Copy csproj and restore as distinct layers
COPY *.csproj ./
RUN dotnet restore

# Copy everything else and build
COPY . ./
RUN dotnet publish -c Release -o out

# Build runtime image
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "WebApp.dll"]

刚开始用的以上配置,结果mcr.microsoft.com的镜像拉取特别慢,卡死了几次,然后改为docker-mcr的 DockerHub 加速器,感兴趣的看这篇https://www.cnblogs.com/newbe36524/p/13148707.html
配置如下:

FROM newbe36524/sdk:3.1 AS build-env
WORKDIR /app

# Build runtime image
FROM newbe36524/aspnet:3.1
WORKDIR /app
COPY . .
ENTRYPOINT ["dotnet", "WebApp.dll"]

dockerfile文件指令说明:

  1. 将published文件传到Linux上
    构建docker镜像,这里要注意后面有个点并且只能镜像名称只能小写
sudo docker build -t webapi .

查看镜像:docker images

image.png
  1. 创建并启动容器
    -p是5001是容器对外端口,80是容器内机器端口。意思是映射外网8041端口到本地容器80端口。
docker run --name myfirstWeb  -d -p 5001:80  webapi

查看容器:docker ps -a

image.png
上一篇下一篇

猜你喜欢

热点阅读