国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

云服務器|WEB服務器|FTP服務器|郵件服務器|虛擬主機|服務器安全|DNS服務器|服務器知識|Nginx|IIS|Tomcat|

服務器之家 - 服務器技術 - 服務器知識 - 關于docker容器優雅退出的問題詳解

關于docker容器優雅退出的問題詳解

2021-02-02 17:27ionic 服務器知識

在Docker大火的今天,我們能夠非常方便的使用容器打包我們的應用程序,并且將它在我們的服務器上部署并運行起來。而下面這篇文章主要給大家介紹了關于docker容器如何優雅退出的問題,需要的朋友可以參考下。

前言

最近因為工作的原因,談到了關于如何正確的退出運行中的docker容器,這是一個非常值得討論的話題了。本文將給出詳細的介紹,下面來一起看看吧。

容器信號使用

我們跑在容器中的程序通常想在容器退出之前做一些清理操作,比較常用的方式是監聽一個信號,延遲關閉容器。

docker提供了這樣的功能:

?
1
2
3
4
5
6
7
8
9
╰─? docker stop --help
 
Usage: docker stop [OPTIONS] CONTAINER [CONTAINER...]
 
Stop one or more running containers
 
Options:
 --help Print usage
 -t, --time int Seconds to wait for stop before killing it (default 10)

docker 1.13以上版本在創建容器時可直接指定STOP_TIMEOUT 和STOP_SIGNAL參數:

?
1
2
3
4
5
$ docker run --help
...
--stop-signal string   Signal to stop a container, SIGTERM by default (default "SIGTERM")
--stop-timeout int   Timeout (in seconds) to stop a container
...

但是。。。

我們測試一個:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package main
 
import (
 "fmt"
 "os"
 "os/signal"
 "syscall"
 "time"
)
 
func main() {
 fmt.Println("signal test")
 go func() {
 for {
  c := make(chan os.Signal, 1)
  signal.Notify(c, syscall.SIGTERM)
  s := <-c
  fmt.Println("Got signal:", s)
 }
 }()
 time.Sleep(time.Second * 100)
}

Dockerfile:

?
1
2
3
4
FROM golang:1.8.0
COPY main.go .
RUN go build -o signal && cp signal $GOPATH/bin
CMD signal

構建:

?
1
docker build -t signal:latest .

運行:

?
1
docker run --name signal signal:latest

再開一終端,運行:

?
1
docker stop -t 10 signal

發現并沒有打印出Got signal:... 監聽信號失敗。

問題再于:我們docker inspect signal看一下

可以看到

?
1
2
3
4
5
Path:/bin/sh
Args:[
 -c,
 signal
]

或者docker exec signal ps 看一下可以看到pid為1的進程并不是signal, 而是shell.

所以原因找到了,是因為docker engine只給pid為1的進程發送信號,sh收到了信號而我們想要的signal進程沒有收到信號

解決辦法:

?
1
2
3
4
FROM golang:1.8.0
COPY main.go .
RUN go build -o signal && cp signal $GOPATH/bin
CMD ["signal"] # 不能寫成 CMD signal, 這會直接exec,否則會以shell的方式派生子進程。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。

原文鏈接:https://segmentfault.com/a/1190000011269875

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 青青av| 综合久久综合 | 中文字幕在线免费看 | 91午夜理伦私人影院 | 羞羞视频在线播放 | 亚洲色视频 | av中文字幕在线 | www.天天操.com | 搞黄视频在线观看 | 夜夜操天天干, | 日韩中文一区二区 | 精品久久久久一区二区国产 | 伊人婷婷 | 亚洲欧美日韩国产综合 | 国产在线综合网 | 一级黄色国产片 | 久久久久国产精品免费免费搜索 | 日韩在线 中文字幕 | 在线视频不卡一区 | 毛片网站在线观看 | 蜜桃av一区二区三区 | 黄色av网站在线观看 | 日干夜操 | 久久精品亚洲精品国产欧美kt∨ | 不卡一区 | 99久久婷婷国产精品综合 | 亚洲狼人 | 欧美日韩精品免费 | 国产欧美日韩在线 | 欧美精品成人一区二区三区四区 | 欧美在线观看免费观看视频 | 久久久久久久久久久久一区二区 | 国产一区二区三区四区五区密私 | 日韩精品小视频 | 精一区二区| 亚洲一区二区久久 | 久久久久成人精品免费播放动漫 | 精品99视频 | 成人黄色av | 免费欧美 | 久久久一区二区三区 |