docker容器信号使用示例分析
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,docker容器信号使用示例分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。容器信号使用我们跑在容器中的程序通常想在容器退出之前做一些
千家信息网最后更新 2025年02月01日docker容器信号使用示例分析
docker容器信号使用示例分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
容器信号使用
我们跑在容器中的程序通常想在容器退出之前做一些清理操作,比较常用的方式是监听一个信号,延迟关闭容器。
docker提供了这样的功能:
╰─➤ docker stop --helpUsage: docker stop [OPTIONS] CONTAINER [CONTAINER...]Stop one or more running containersOptions: --help Print usage -t, --time int Seconds to wait for stop before killing it (default 10)
docker 1.13以上版本在创建容器时可直接指定STOP_TIMEOUT 和STOP_SIGNAL参数:
$ 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...
但是。。。
我们测试一个:
package mainimport ( "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:
FROM dev.reg.iflytek.com/base/golang:1.8.0COPY main.go .RUN go build -o signal && cp signal $GOPATH/binCMD signal
构建:
docker build -t dev.reg.iflytek.com/test/signal:latest .
运行:
docker run --name signal dev.reg.iflytek.com/test/signal:latest
再开一终端,运行:
docker stop -t 10 signal
发现并没有打印出Got signal:... 监听信号失败。
问题再于:我们docker inspect signal看一下 可以看到
Path:/bin/shArgs:[ -c, signal]
或者docker exec signal ps 看一下可以看到pid为1的进程并不是signal, 而是shell.
所以原因找到了,是因为docker engine只给pid为1的进程发送信号,sh收到了信号而我们想要的signal进程没有收到信号
解决办法:
FROM dev.reg.iflytek.com/base/golang:1.8.0COPY main.go .RUN go build -o signal && cp signal $GOPATH/binCMD ["signal"] # 不能写成 CMD signal, 这会直接exec,否则会以shell的方式派生子进程。
看完上述内容,你们掌握docker容器信号使用示例分析的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!
信号
容器
进程
问题
示例
分析
内容
原因
方式
方法
更多
监听
运行
束手无策
为此
办法
功能
参数
对此
常用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
智能软件开发女生多吗
安庆数据库营销是什么
军人手机网络安全体会
义乌提升网络安全技术人才缺口大
图片匹配数据库技术
苏州智能设备软件开发
网络安全正能量1000字
慈溪ios软件开发外包
软件开发数据词典
杭州龙协网络技术
智慧沃家宽带服务器暂无响应
网络技术应用考试试卷
安徽视频会议服务器供应商
数据库系统全称
金财网网络安全制度
网络安全十大公司排名 观安
网络安全法第二十一条处罚
吃鸡高级服务器有什么用
微信小程序本地数据库
设立数据库
vb软件开发
应用服务器集群有哪些特点
网络安全法与你我有关
天才小说软件开发
郴州梦莱网络技术有限公司
汕头机器人rpa软件开发
数据库 图库
软件开发用的分屏电脑
手机网络安全使用措施50字
V模型是软件开发模型吗