可以使用systemd的socket activation功能启动公开(侦听)端口的单个Docker容器(例如Web服务器)吗?这个想法是通过仅在第一次实际需要时启动容器来节省资源(并且可能在空闲时再次停止以节省资源)。
注意:关于使用套接字激活(已经supported)启动Docker守护程序本身,但是关于按需启动单个容器的问题
答案 0 :(得分:11)
简而言之,你不能。
但是,如果你想要一个解决方案,你首先需要运行一个像CoreOS或geard这样的工具来运行系统服务中的每个Docker容器。
即便如此,Docker对继承套接字的支持已经过去了。我知道geard是working on stable support。 CoreOS已发布对socket activation in Go的广义支持。红帽人员还在related patches中添加了使用Go的套接字激活库并改进前景模式的Fedora的Docker软件包,"使其发挥作用的关键因素。
(我是来自Lennart early article on socket activation of containers的David Strauss,这个主题让我非常感兴趣。我已经通过电子邮件发送了Red Hat的补丁作者并联系了geard团队。我和#39;尝试更新此答案。)
答案 1 :(得分:0)