我有一个非常简单的Go应用程序在端口8080上侦听
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(200)
w.Header().Set("Content-Type", "text-plain")
w.Write([]byte("Hello World!"))
})
log.Fatal(http.ListenAndServe(":8080", http.DefaultServeMux))
Run Code Online (Sandbox Code Playgroud)
我将它安装在Docker容器中并像这样启动它:
FROM golang:alpine
ADD . /go/src/github.com/myuser/myapp
RUN go install github.com/myuser/myapp
ENTRYPOINT ["/go/bin/myapp"]
EXPOSE 8080
Run Code Online (Sandbox Code Playgroud)
然后我使用docker run以下命令运行容器:
docker run --publish 8080:8080 first-app
Run Code Online (Sandbox Code Playgroud)
我希望,像大多数程序一样,我可以将SIGTERM发送到正在运行的进程docker run,这将导致容器停止运行.我发现发送SIGTERM没有效果,而是我需要使用像docker kill或的命令docker stop.
这是预期的行为吗?我已经在论坛和IRC上询问并且没有得到答案.
docker ×1