执行Docker friendlyhello教程时遇端口映射错误,求助解决方案
解决Docker启动容器时的userland proxy错误
嘿,我之前也碰到过这个一模一样的问题!这个错误通常和端口冲突、Docker网络组件故障或者防火墙限制有关,给你几个亲测有效的解决办法:
检查端口是否被占用
先确认4000端口是不是被其他程序占了:- Linux/macOS执行:
lsof -i :4000 - Windows执行:
netstat -ano | findstr :4000
如果查到有进程占用,要么换个端口启动容器(比如docker run -d -p 4001:80 friendlyhello),要么关掉占用端口的程序再重试。
- Linux/macOS执行:
重启Docker服务
有时候Docker的网络代理组件会抽风,重启一下就能解决:- Linux:
sudo systemctl restart docker - macOS/Windows:打开Docker Desktop,点击界面上的「Restart」按钮。
- Linux:
禁用Docker的userland proxy(仅Linux)
编辑Docker的配置文件/etc/docker/daemon.json,添加以下内容:{"userland-proxy": false}保存后执行
sudo systemctl restart docker重启服务,再重新创建容器试试。检查防火墙设置
防火墙可能阻止了Docker的端口转发,你可以先临时关闭防火墙测试:- Linux:
sudo ufw disable
如果关闭后容器能正常启动,记得再重新配置防火墙,允许4000端口的转发规则。
- Linux:
内容的提问来源于stack exchange,提问作者user3928241
相关产品推荐
相关产品推荐

