docker

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > docker > 不重启docker进程,重新reload加载配置

不重启docker进程,重新reload加载配置过程

作者:IT杂人

这篇文章主要介绍了不重启docker进程,重新reload加载配置过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

因为运行了多个容器,重启docker进程时会让所有容器重启,时间不能等;有没有类似nginx一样的reload机制呢?

linux 信号认知:SIGHUP

本信号在用户终端连接(正常或非正常)结束时发出, 通常是在终端的控制进程结束时, 通知同一session内的各个作业, 这时它们与控制终端不再关联。

登录Linux时,系统会分配给登录用户一个终端(Session)。在这个终端运行的所有程序,包括前台进程组和后台进程组,一般都属于这个 Session。

当用户退出Linux登录时,前台进程组和后台有对终端输出的进程将会收到SIGHUP信号。这个信号的默认操作为终止进程,因此前台进 程组和后台有终端输出的进程就会中止。

不过可以捕获这个信号,比如wget能捕获SIGHUP信号,并忽略它,这样就算退出了Linux登录,wget也 能继续下载。

重点来了:

此外,对于与终端脱离关系的守护进程,这个信号用于通知它重新读取配置文件。

使用kill测试

ps -ef|grep dockerd
kill -SIGHUP $(pidof dockerd) 

– 使用kill命令,发送SIGHUP信号给dockerd ,dockerd收到信号后会reload配置;

– SIGHUP对应信号编码1,可简化为:

kill -1 $(pidof dockerd) 

测试结果

使用docker info查询或者相关的配置的操作显示:

发现容器的状态时间不变,但新的配置已经添加;

另常用的kill另一个信号是:

kill -9 $pid

对应的信号是:

用来立即结束程序的运行. 本信号不能被阻塞、处理和忽略。如果管理员发现某个进程终止不了,可尝试发送这个信号。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文