要在Docker Windows中运行ASP.NET Core容器和ASP.NET容器,可以使用以下方法来设置自定义端口:
首先,在ASP.NET Core项目的Program.cs
文件中,使用UseUrls
方法来指定自定义端口:
public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseUrls("http://localhost:8080") // 设置自定义端口
.UseStartup();
}
接下来,使用Dockerfile来构建ASP.NET Core容器。在Dockerfile中,使用EXPOSE
命令来指定容器将要监听的端口:
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
WORKDIR /app
# 复制项目文件到容器中并构建项目
COPY . .
RUN dotnet restore
RUN dotnet publish -c Release -o out
# 构建最终的镜像
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 AS final
WORKDIR /app
COPY --from=build /app/out .
EXPOSE 8080 # 指定容器将要监听的端口
ENTRYPOINT ["dotnet", "YourApp.dll"]
最后,使用以下命令来构建和运行ASP.NET Core容器:
docker build -t yourapp . # 构建镜像
docker run -d -p 8080:8080 yourapp # 运行容器并将自定义端口映射到主机的8080端口
对于ASP.NET容器,可以使用类似的方法来设置固定端口。在ASP.NET项目的Properties/launchSettings.json
文件中,使用applicationUrl
属性来指定固定端口:
{
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "swagger",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"applicationUrl": "http://localhost:80" // 设置固定端口
}
}
}
然后,使用Visual Studio或者命令行来运行ASP.NET项目。它将会在固定端口80上运行。
请注意,如果端口被主机系统或其他进程占用,可能需要选择其他可用的端口。