gpt4 book ai didi

windows - Docker 端口绑定(bind)失败。为什么是 "permission denied"?

转载 作者:可可西里 更新时间:2023-11-01 13:50:49 25 4
gpt4 key购买 nike

我正在尝试在 Windows 10 Pro(最新版)下启动一个 jenkinsci/blueocean 容器。我正在运行一个脚本:

docker run ^
--rm ^
-u root ^
-d ^
-p 8080:8080 ^
-p 50000:50000 ^
-v D:/docker/jenkins/volumes/jenkins-data:/var/jenkins_home ^
-v D:/docker/jenkins/volumes/docker.sock:/var/run/docker.sock ^
-v D:/docker/jenkins/volumes/home:/home ^
jenkinsci/blueocean

失败并显示以下消息:

docker: Error response from daemon: 
driver failed programming external connectivity on endpoint elastic_kare:
Error starting userland proxy:
Bind for 0.0.0.0:50000: unexpected error Permission denied

如果我省略端口 50000 的绑定(bind),它工作正常,但我需要 50000 端口与主机上的从属设备通信。

将 50000 绑定(bind)到另一个端口没有帮助。根据 netstat -an,该端口未被使用。尝试以管理员身份运行脚本没有帮助。

这可能是什么问题?

更新:我重新启动了笔记本电脑,并将 Docker Desktop 也更新到了最新版本。

update2:重启笔记本电脑后,我也重启了 Docker(多次)。无济于事。

update3:关闭Windows防火墙没有解决问题。

最佳答案

如果你在 Windows 上运行 Docker 那么它将使用 Hyper-V - 我发现 Hyper-V 保留了一堆端口 - 你可以通过运行这个找到:

netsh interface ipv4 show excludedportrange protocol=tcp

在我的机器上,我可以看到它保留了端口 50000。为了释放这个端口,我禁用了 Hyper-V:

dism.exe /Online /Disable-Feature:Microsoft-Hyper-V

重启后,我保留了端口 50000:

netsh int ipv4 add excludedportrange protocol=tcp startport=50000 numberofports=1

然后再次启用 Hyper-V:

dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All

当它恢复时,我可以在 Windows 上的 Docker 中运行 Jenkins:

docker run -p 8080:8080 -p 50000:50000 jenkins/jenkins:lts

关于windows - Docker 端口绑定(bind)失败。为什么是 "permission denied"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54217076/

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