gpt4 book ai didi

docker - dotnet 核心 docker 容器 - 无法绑定(bind)到 https ://localhost:5001 on the IPv6 loopback interface

转载 作者:行者123 更新时间:2023-12-02 19:05:48 25 4
gpt4 key购买 nike

我为 .NET 核心创建了一个图像:

FROM microsoft/dotnet:2.1-sdk AS build-env
WORKDIR /app

EXPOSE 80 443 5000 5001 5010 5011 7000 22676

#ENTRYPOINT [ "bash"]
CMD ["bash"]

我从中运行一个容器docker 容器运行 -it --publish 5000:8018 --name versie3001 -v//c/tijd/mount:/app michel03

顺利的是我看到了挂载的文件。当我使用 dotnet new razor 创建一个新网站并使用 dotnet run 运行它时,它尝试在端口 5000/5001(默认端口)上运行,但出现此错误:

warn: Microsoft.AspNetCore.Server.Kestrel[0]
Unable to bind to https://localhost:5001 on the IPv6 loopback interface: 'Cannot assign requested address'.
warn: Microsoft.AspNetCore.Server.Kestrel[0]
Unable to bind to http://localhost:5000 on the IPv6 loopback interface: 'Cannot assign requested address'.

实际上它说警告,但结果是一样的,当我转到 localhost:8018 时我没有得到任何结果 (ERR_CONNECTION_REFUSED)

我在这里做错了什么?

我看到一个回答说我应该在我的容器文件中这样做:ENTRYPOINT [“dotnet”、“watch”、“run”、“--no-restore”、“--urls”、“https://0.0.0.0:5000”]。它没有给我错误(输出是 Now listening on: https://0.0.0.0:5000),这很好,但它也没有从 https://连接localhost:8018 在我的本地机器上。

最佳答案

你的 --publish选项向后:它是-p <hostPort>:<containerPort> ,因此对于您的设置,您需要 --publish 8018:5000 .

撇开启动问题不谈,您确实需要使容器监听 0.0.0.0(或::0,如果 IPv6 有效)的选项。如果它绑定(bind)到本地主机,它将无法从其容器外部访问,包括来自其他容器和主机。

关于docker - dotnet 核心 docker 容器 - 无法绑定(bind)到 https ://localhost:5001 on the IPv6 loopback interface,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52717738/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com