配置更改时重新启动Docker服务

时间:2016-04-04 15:42:31

标签: nginx docker

如何重新启动服务,例如' nginx'配置文件更改时?例如,我已经让Puppet创建了一些nginx cfg文件并将它们放在一个安装到我的nginx容器的卷上。目前我正在使用docker-gen,但还有其他方法吗?

1 个答案:

答案 0 :(得分:0)

Docker容器意味着短暂的。此外,Docker容器通过在容器中创建进程PID 1来“容纳”您正在运行的任何进程。这意味着没有传统的init系统。实际上,根本没有init系统。如您所知,当容器内的进程退出时,容器就会死亡。因此,如果我们从实现临时容器的角度来解决问题,则不要重新启动服务。您可以使用修改后的配置创建新容器。正如thaJeztah的评论中所提到的,您可以docker restart nginx使用容器刷新配置。

现在,有几种方法可以将这个方形钉子钉成圆孔。你比那更好......但是,你已经注意到docker-gen会让你几乎到达那里。同样,如果您深入了解jwilder/nginx-proxy image的工作原理,您将更好地了解docker-gen在实践中的工作原理。但是你可能已经看过了,因为你已经在使用docker-gen

另一个选择是像supervisord这样的鞋子。关于在线进行此操作有plenty of information。很多人过去都这样做过。因此,对于其他可能无法理解解决问题原因的人来说,supervisord会成为容器的PID 1,并允许您“像正常”一样重新启动子nginx进程,但不会杀死容器。