我正在尝试开始一个jenkinsci/blueocean
Windows 10 Pro(最新)下的容器。我正在运行一个脚本:
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,那么它将使用 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)