登录
首页 >  Golang >  Go问答

Windows 上的 Docker - 端口锁定

来源:stackoverflow

时间:2024-03-23 14:27:32 450浏览 收藏

在 Windows 系统上使用 Docker 时,可能会遇到端口锁定问题,即使已删除容器,端口仍然被占用。此问题是由 Docker 的驱动程序编程错误导致的,导致无法建立外部连接。最简单的解决方案是重新启动 Docker,以释放被锁定的端口。

问题内容

我最近在尝试本地测试 golang api 时遇到了错误。

我的 api 暴露在端口 8080 上:

log.fatal(http.listenandserve(":8080", router))

我的最终 docker 文件在同一端口上公开 api:

from scratch

workdir /app
copy ./fooapi.exe /app/fooapi
copy ./cmd/fooapi/conf.json /app

# tell we are exposing our service on port 8080
expose 8080

# run it!
cmd ["./fooapi"]

当我尝试运行我的 docker 映像时,出现以下错误消息:

c:\program files\docker\docker\resources\bin\docker.exe: error response from daemon: driver failed programming external connectivity on endpoint fooapi (f6d5bed281ad1e8c1c56770cc1c05e3b5a7f8a05abd8265ae3a4007eeb3ff895): 
error starting userland proxy: mkdir /port/tcp:0.0.0.0:8080:tcp:172.17.0.2:8080: input/output error

使用以下命令删除以前的容器后发生的事件:

docker rm $(docker ps -a -q)

解决方案


Windows 上的 Docker 有时会在不确定的持续时间内锁定您的端口,即使在删除容器之后也是如此。

你要做的最简单的事情就是重新启动 docker,端口就不再被锁定。

以上就是《Windows 上的 Docker - 端口锁定》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>