我有带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。
当我开始新任务时,我有错误:
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?