相关疑难解决方法(0)

通过发送SIGTERM停止正在运行的Docker容器

我有一个非常简单的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

6
推荐指数
2
解决办法
5204
查看次数

标签 统计

docker ×1