【发布时间】:2019-01-19 13:55:02
【问题描述】:
我无法通过发送中断信号来停止 docker 容器中的 docker golang web 服务器。 我有以下 main.go:
package main
import (
"log"
"net/http"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("hello"))
})
log.Fatal(http.ListenAndServe(":1818", nil))
}
还有 Dockerfile:
FROM golang:1.11.4-alpine3.8
WORKDIR /go/src/server
COPY main.go main.go
CMD ["go", "run", "main.go"]
我建造:
docker build -t goserver .
并运行图像:
docker run -p 1818:1818 goserver
此时服务器正在运行。当我在控制台容器(和服务器进程)中按 Ctrl+C 时,它仍在运行,停止的唯一方法是调用 docker 来执行此操作。 我想知道如何处理这种行为,以便在按下 Ctrl+C 时服务器和容器停止。
Docker 版本 18.09.1
【问题讨论】: