在Amazon ECS EC2任务中启动userland proxy:0.0.0.0:25时出错

问题描述 投票:3回答:1

我有带EC2启动类型的Amazon ECS群集。

我尝试使用25和587端口映射运行docker(Linux)容器。

Dockerfile非常简单:

FROM microsoft/dotnet:2.0-runtime AS base
WORKDIR /app

FROM microsoft/dotnet:2.0-sdk AS build
WORKDIR /src
COPY *.sln ./
COPY MailTool.Smtp/MailTool.Smtp.csproj MailTool.Smtp/
RUN dotnet restore
COPY . .
WORKDIR /src/MailTool.Smtp
RUN dotnet build -c Release -o /app

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

FROM base AS final
WORKDIR /app
COPY --from=publish /app .
EXPOSE 25
EXPOSE 587
ENTRYPOINT ["dotnet", "MailTool.Smtp.dll"]

我已经使用了我的任务定义的默认设置。

任务定义网络模式是Bridge。

我已经映射了端口,如截图所示:enter image description here

当我开始新任务时,我有错误:

Status reason   CannotStartContainerError: API error (500): driver failed programming external connectivity on endpoint ecs-1-8-1-febb999cf990b2f53700 (646613a2e4c7ae1f0c8e82a2100d468eba09c7dbd64caddde3d14901d14a775c): Error starting userland proxy: listen tcp 0.0.0.0:25

我只在Linux类型的容器上有错误。如果我使用Windows类型容器,那么一切正常。

如果我更改映射125(主机端口) - > 25(容器端口),那么任务也可以正常工作。

据我所知,Linux的25端口不可用......

如何在Amazon DockS容器的Amazon ECS EC2实例上使用端口25?

linux amazon-web-services docker smtp amazon-ecs
1个回答
1
投票

Amazon默认禁用这些端口。

看看亚马逊documentation

您需要向Amazon支持部门请求启用必要的端口。

我相信它会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.