如何将Docker文件部署到真实的机器上



背景:我正在使用Docker来构建我的开发环境(web应用程序、nginx、gunicorn、postgress等都需要提及)。我希望我的开发环境与生产环境相匹配。我现在使用debian7作为基础发行版,但这个问题与debian无关。我不想在实际生产中使用docker(安全更新、监控、日志记录等等,但这是不同的问题,为什么不呢),但我想使用"真实的"Debian 7作为生产环境。

问题:有没有办法将构建docker映像的命令作为本地命令运行,例如:docker deploy_to_host <Dockerfile>,它将作为根命令运行RUN指令等。这与我打开主机根命令并手动复制粘贴命令的效果类似。

谢谢!

在我看来,你使用了错误的工具集,所以我的答案与Docker无关,这就是为什么:

如果你要在没有Docker的生产环境中部署,并希望有某种自动流程来准备机器和部署应用程序,那么你正在寻找以下工具:

  • 厨师
  • 木偶
  • SaltStack
  • Ansible
  • 或者只是shell脚本

一旦您决定了如何部署到生产环境中,您就可以查看您的开发环境选项。

由于您没有在生产中使用Docker,因此在开发环境中使用它的兴趣不大。然后,我会考虑使用Vagrant定义一个(或多个)虚拟机,并让Vagrant使用您为生产环境选择的工具准备这些虚拟机。(厨师、木偶、SaltStack、Ansible或shell脚本)。请参阅Vagrant供应。

这将具有测试部署解决方案以及在开发环境中测试应用程序的优势,并建立起在部署到产品时所有这些都将按预期工作的信心。

您可以使用这里介绍的远程docker API请参阅第2.3 Misc节和命令POST /build。简而言之,您可以将包含Dockerfile及其根目录的tar文件发布到docker守护进程,以便在远程机器上构建它。

UPD:答案不是我注意力不集中的实际原因。

最新更新