我已经尝试将我的站点部署脚本打包在Docker容器中。我的想法是,我的服务都将在容器内,然后使用特殊管理容器来管理其他容器。
这个想法是我的主机应该尽可能愚蠢(目前我使用CoreOS,唯一的状态是启动我的管理容器的systemd配置)。
管理容器用作推送目标,用于根据我发送给它的源代码创建新容器(我认为,使用SSH,至少这是我现在使用的)。该脚本还在一个单独的容器中管理持久性数据(数据库文件,日志等)并管理它的备份,以便我可以拆除并重建所有内容,而无需接触任何数据。为了实现这一点,我在启动管理容器时使用-v
选项转发Docker Unix套接字。
这是好主意还是坏主意?这样做会遇到问题吗?我没有在任何地方看到它被劝阻,但我也没有找到很多其他人这样做的例子。
答案 0 :(得分:6)
这完全没问题,你不是唯一一个这样做的人: - )
另一个使用示例是使用管理容器来进行Docker REST API的身份验证。它将接受EXPOSE的TCP端口上的连接,该端口本身是用-p
发布的,并且是对UNIX套接字的代理请求。
答案 1 :(得分:2)
由于这个问题在今天仍然很重要,我想更详细地回答:
可能可以使用此设置,将docker套接字传递到运行的容器中。这可以通过许多解决方案来完成,并且效果很好。但是您必须考虑与此相关的问题:
TLDR;
您可以做到这一点,它将起作用,但是随后您需要考虑一下安全性。