Docker端口绑定失败。为什么“许可被拒绝”?

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

我正在尝试在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的绑定它工作正常,但我需要50000端口与主机上的从设备通信。

将50000绑定到另一个端口没有帮助。根据netstat -an的说法,这个港口没有被使用。尝试以管理员身份运行脚本没有帮助。

这可能是什么问题?

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

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

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

windows docker jenkins
1个回答
9
投票

如果你在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
© www.soinside.com 2019 - 2024. All rights reserved.