docker容器如何退出
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章将为大家详细讲解有关docker容器如何退出,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。容器信号使用我们跑在容器中的程序通常想在容器退出之前做一些清理操作
千家信息网最后更新 2025年12月02日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 golang:1.8.0COPY main.go .RUN go build -o signal && cp signal $GOPATH/binCMD signal
构建:
docker build -t signal:latest .
运行:
docker run --name signal 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 golang:1.8.0COPY main.go .RUN go build -o signal && cp signal $GOPATH/binCMD ["signal"] # 不能写成 CMD signal, 这会直接exec,否则会以shell的方式派生子进程。
关于"docker容器如何退出"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
容器
信号
进程
篇文章
方式
更多
监听
运行
不错
实用
内容
办法
功能
原因
参数
常用
文章
版本
知识
程序
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技早知道
网络安全法是否适用行政处罚
智能产品开发软件开发
肇庆无限软件开发价格
未转变者夜航星服务器
肖战回应网络安全吗
作业计划数据库组成
网络安全专栏征文
数据库实例购物er图
停电后来电提示远端服务器无响应
用友财务服务器管理软件
html页面怎么存入数据库
怎么做mc服务器
管家婆数据库2005
软件开发管理课程资料
数据库工作岗位需要的技术
汽车网络技术的作用
网络安全骗局
水蜜桃软件开发
中移动服务器集采涨价
疫情期间同上网络安全
公司数据库一般做什么
计算机网络技术专业好创业吗
软件开发哪儿好
mongdb数据库的特点
数据库之间接口
c 面试题 数据库
数据库原理上机中可能碰到的问题
物联网电子产品应用软件开发
下列行为符合网络安全法的是