咕噜代码:
fmt.Println("server starting...")
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
name, _ := os.Hostname()
resp := fmt.Sprintf("hit %s", name)
w.Write([]byte(resp))
})
http.ListenAndServe("127.0.0.1:8080", nil)
Dockerfile:
FROM alpine:latest
COPY ./server .
CMD [ "./server" ]
然后运行它:
$ docker run --rm -p 8080:8080 server
server starting...
它适用于容器(安装curl后):
$ docker exec 3c3 -it curl localhost:8080
hit 3c398d80ca79
但它在主机中不起作用:
$ curl localhost:8080
curl: (52) Empty reply from server
$ nc localhost 8080
$ # nc exit immediatly
如果我运行而不是:nc -l -p 8080./server
$ docker run --rm -it -p 8080:8080 alpine:latest nc -l -p 8080
并在主机中运行它:
$ curl localhost:8080
然后我可以在容器中得到请求,并且everthing工作得很好。
那么,在高山图像中卷曲golang服务器时有什么问题呢?
慕慕森
牛魔王的故事
相关分类