docker容器C#应用程序外部的连接被拒绝

docker容器C#应用程序外部的连接被拒绝,c#,docker,.net-core,dockerfile,C#,Docker,.net Core,Dockerfile,我在C#.Net内核(v3.1)中有一个应用程序,当我运行它时。它很好用 当我在docker容器中启动它时,它在容器中运行良好,但在尝试调用容器外部的端点时,我遇到了一个错误连接被拒绝 我的命令 docker build . -t project docker run project -p 23183:23183 我的程序.cs using System.IO; using Microsoft.AspNetCore.Hosting; namespace project { publi

我在C#.Net内核(v3.1)中有一个应用程序,当我运行它时。它很好用

当我在docker容器中启动它时,它在容器中运行良好,但在尝试调用容器外部的端点时,我遇到了一个错误
连接被拒绝

我的命令

docker build . -t project
docker run project -p 23183:23183
我的程序.cs

using System.IO;
using Microsoft.AspNetCore.Hosting;

namespace project
{
    public class Program
    {
        public static void Main(string[] args)
        {
            var host = new WebHostBuilder()
                .UseContentRoot(Directory.GetCurrentDirectory())
                .UseKestrel()
                .UseStartup<Startup>()
                .Build();

            host.Run();
        }
    }
}

不确定你的问题到底是什么,但这就是我的docker文件的样子。希望有帮助:

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base

WORKDIR /app
EXPOSE 80

FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ["path/to/project.csproj", "project/"]
COPY . .
WORKDIR "/src/project"

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

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

我认为您必须在入口点数组(Dockerfile)中使用
--URL
作为参数@stefan我试过了,但没有让我明白这一点-您无法从本地pc访问
localhost:23183
上的API?@rytisk是的。为什么您不;'t调用dotnet restore?如果愿意,您可以,但对我来说,它是在构建步骤中完成的抱歉,它实际上是在
运行dotnet发布
步骤中完成的
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 as base
COPY . /app
WORKDIR /app
EXPOSE 23183/tcp
ENV ASPNETCORE_URLS http://*:23183

# Build
FROM base as build
WORKDIR /src
COPY *.sln ./
COPY project/project.csproj project/

RUN dotnet restore
COPY . .
WORKDIR /src/project

# Publish
FROM build AS publish
RUN dotnet publish -c Release -o /app/out

FROM base AS final
WORKDIR /app
COPY --from=publish /app/out ./
ENTRYPOINT ["dotnet", "project.dll", "--server.urls", "http://0.0.0.0:23183"]
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base

WORKDIR /app
EXPOSE 80

FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ["path/to/project.csproj", "project/"]
COPY . .
WORKDIR "/src/project"

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

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