我最近在尝试本地测试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)
答案 0 :(得分:2)
即使在删除容器后,Windows上的Docker有时也会在不确定的时间内锁定您的端口。
您要做的最简单的事情是重新启动docker,并且端口不再被锁定。