【发布时间】:2015-07-09 02:09:00
【问题描述】:
我正在尝试通过 docker 运行 golang web server application(它试图运行由与 golang blog 相同的工具驱动的 go 博客)。它在没有 docker 的情况下运行良好,但如果我使用 docker 则无法给出任何响应。我不知道为什么会发生这种情况,因为对于更简单的go web application,相同的基于 docker 的方法效果很好。有关我使用的各种命令的输出,请参见下文。任何帮助将不胜感激。
docker pull maddyonline/gotutorial
docker run -d --publish 8080:8080 --name gotut maddyonline/gotutorial
81bc36e385286326a6d9f74322515a7b9748e493275c3426bcc6848a4589a7e7
docker ps
容器 ID 图像命令
创建状态端口名称 81bc36e38528 maddyonline/gotutorial “go-wrapper run” 20 秒前 上升 20 秒 0.0.0.0:8080->8080/tcp gotut
curl localhost:8080
curl: (52) 来自服务器的空回复
docker exec gotut curl localhost:8080
<!DOCTYPE html> <html> <head>以及文件的其余部分
我使用的docker文件很简单。
FROM golang:onbuild
EXPOSE 8080
我在同一台服务器上用一个更简单的 golang 应用程序尝试了相同的 docker 文件。它有效。
docker pull maddyonline/gowebapp
docker run -d --publish 8080:8080 --name gowebapp maddyonline/gowebapp
curl localhost:8080/icecream
你好,我想我喜欢冰淇淋!
【问题讨论】:
-
我需要查看 Go 代码,但我怀疑您绑定到 localhost 或 127.0.0.1 而不是 0.0.0.0。