netcore项目Dockerfile配置及Docker构建命令
1、netcore项目Dockerfile文件配置
如果是编译发布好的格式如下
FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build EXPOSE 7007 WORKDIR /app COPY . . ENTRYPOINT ["dotnet", "MinioF.WebApi.dll"]
如果是源码就保持原来的即可(PS:如果是有自己私有的nuget的需要把私有源添加进来)
#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 AS base WORKDIR /app EXPOSE 7999 FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build WORKDIR /src COPY ["MinioF.WebApi/MinioF.WebApi.csproj", "MinioF.WebApi/"] COPY ["MinioF.Repository/MinioF.Repository.csproj", "MinioF.Repository/"] COPY ["MinioF.Services/MinioF.Services.csproj", "MinioF.Services/"] COPY ["MinioF.Entities/MinioF.Entities.csproj", "MinioF.Entities/"] COPY ["MinioF.Common/MinioF.Common.csproj", "MinioF.Common/"]
RUN dotnet nuget add source http://私有源地址:8080/nuget RUN dotnet restore "MinioF.WebApi/MinioF.WebApi.csproj" COPY . . WORKDIR "/src/Gdunis.MinioF.WebApi" RUN dotnet build "MinioF.WebApi.csproj" -c Release -o /app/build FROM build AS publish RUN dotnet publish "MinioF.WebApi.csproj" -c Release -o /app/publish FROM base AS final WORKDIR /app COPY --from=publish /app/publish . ENTRYPOINT ["dotnet", "MinioF.WebApi.dll"]
2、Docker构建命令
#docker创建镜像 PS: CD在程序目录下运行,注意后面有个点(当前目录的意思) docker build -t 镜像名称 . #使用镜像启动容器(-v挂载 -d 后台运行 -p前面是主机后面是容器) docker run --name 容器名称 -v /root/data:/app/Config -d -p 7007:7007 镜像名称:latest #查看镜像 docker images #删除镜像 docker rmi 镜像名称 #查看运行的容器(-a 看所有包含未运行) docker ps #停掉一个容器 stop 更温和 docker kill 容器名称 #移除容器 docker rm 容器名称 #查看容器详情 docker inspect 容器名称 #进入容器(如果是执行程序的话把bash改为sh) docker exec -it 容器名称 bash