[英]Docker: Error starting userland proxy: Bind for 0.0.0.0:50000: unexpected error Permission denied on Azure VM
I'm new to Docker so please be kind but I am testing it out on a Windows 10 image on Azure (I know I could run it directly but I wanted to try it in a VM first). 我是Docker的新手,请好心,但是我正在Azure的Windows 10映像上对其进行测试(我知道我可以直接运行它,但我想先在VM中进行尝试)。
I have a fresh Windows 10 image that I have installed Docker for Windows 2.0.0 on. 我有一个新的Windows 10映像,我已在其中安装了Windows 2.0.0的Docker。 Note: I did not tick the option to use Windows containers instead of linux containers.
注意:我没有勾选使用Windows容器而不是linux容器的选项。
Once it installed (and rebooted) I was prompted to install Hyper-V and Containers features (causing restarts). 安装(并重新启动)后,系统提示我安装Hyper-V和Containers功能(导致重新启动)。
Once it was all installed I open an Administrative PowerShell window to download Jenkins: 安装完成后,我将打开一个管理PowerShell窗口来下载Jenkins:
docker run -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts
This gave me the error: 这给了我错误:
C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from daemon: driver failed programming external connectivity on endpoint goofy_lederberg (deaba2deeea0486c92ba8a1a32740295f03859b1b5829d39e39eff0b24613ebf): Error starting userland proxy: Bind for 0.0.0.0:50000: unexpected error Permission denied.
I thought this was strange as 50000 wasn't a port that I expected to be in use, changing this to different ports (50001) produced the same error. 我以为这很奇怪,因为50000不是我期望使用的端口,将其更改为不同的端口(50001)会产生相同的错误。
Running: 正在运行:
netstat -a -n -o
Showed that the port was not in use. 显示该端口未使用。
If I remove -p 50000:50000 from the command it can bind and start Jenkins but I assume it needs this port mapping to work correctly. 如果我从命令中删除-p 50000:50000,它可以绑定并启动Jenkins,但我认为它需要此端口映射才能正常工作。
Previous posts have suggested stopping the World Wide Web Publishing service but that isn't installed. 以前的帖子建议停止World Wide Web Publishing服务,但尚未安装。
There are no other running Docker containers. 没有其他正在运行的Docker容器。
I assume the port is in use or something is stopping the port mapping. 我认为该端口正在使用中,或某些正在停止端口映射。
Assuming a user has permission to create a port binding from their terminal are there any other techniques beside netstat to determine if something is bound to a port - either something internal to docker's own checking process or something at the host OS level? 假设用户有权从其终端创建端口绑定,netstat之外是否还有其他技术来确定是否已将某些端口绑定到端口-码头工人自己的检查过程内部的内容还是主机操作系统级别的内容?
Rather embarrassingly this worked this morning with no changes other than the VM was shutdown over the weekend. 令人尴尬的是,此操作今天早上没有进行任何更改,只是在周末关闭了VM。 Maybe all it needed was a reboot?
可能需要的只是重启?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.