我被一个golang应用程序停靠,我正在try 访问该应用程序.在端口8007中运行的应用程序

我正在使用以下命令运行容器

docker run --name sample_go_app -p 7000:8007 sample_go

try 了curl http://localhost:7000次后出现错误

curl: (56) Recv failure: Connection reset by peer

主要的go

...
srv := &http.Server {
Handler: router,
Addr:    "localhost:8007",
}
...

推荐答案

您正在将套接字绑定到从容器外部无法访问的本地主机地址.您应该只在地址中添加端口部分,以便您的进程接受来自任何网络接口的连接.您可以这样定义服务器:

srv := &http.Server {
Handler: router,
Addr:    ":8007",
}

Go相关问答推荐

如何在Deliverq中高效地传达客户依赖关系?

如何使用Promela建模语言对Golang RWLock进行建模

GitHub发布Golang子模块

Go Colly-访问for循环中的URL

golang testscript .txtar 语法,用于 stderr 或 stdout 中包含的文本

为什么 Go 对于长度为 100k 的切片使用的内存比长度为 100k 的数组要少?

Kusto Go API 从多个表查询

在golang中以JSON格式获取xwwwformurlencoded请求的嵌套键值对

在 Cloud Run 中找不到默认凭据

如何判断范围内的字段?

在 .go 文件中运行一个函数和在 Go 模板中调用它有什么区别?

函数实现接口时的模式名称是什么?

emersion/go-imap - imap.FetchRFC822:无效内存地址或零指针取消引用

如何在切片增长时自动将切片的新元素添加到函数参数

Dockerfile 问题 - 为什么找不到二进制 dlv - 没有这样的文件或目录

Go 中 SDL Surface 的 OpenGL 纹理

当 git clone 工作时,Go mod tidy 在私有存储库上失败

Go:用于 XML 解码的嵌套 struct 中的提升字段

将 CSVExport 函数传递给处理程序 Gin

AWS EKS 上的 Golang REST API 部署因 CrashLoopBackOff 而失败