如何在本地 Unix 机器上部署 docker web 服务?

如何在本地 Unix 机器上部署 docker web 服务?

我有以下情况。我有一台 CentOS 机器,目前在不同的子目录中提供一些 Flask 应用程序(例如http://地址/app1http://地址/app2等等)。用户将会想出更多的应用程序,可能使用不同的框架和依赖项。

这种情况并没有按照我想要的方向发展。我希望的是每个应用程序都打包到一个docker容器中,要部署它,用户只需打包镜像并推送即可。

基本上是某种类型的云提供商,但是由内部实施。

我知道这需要一些反向代理方面的工作,并且可以手动完成,但我怀疑已经有一个(轻量级)解决方案。我不是这个主题的专家,因此我需要一些关键字来表示适合我们的 IT 部署在 CentOS 机器上的技术,供我研究。

请注意,我买不起复杂的云服务。我需要一些简单的、针对我的用例并且可以在一个下午内部署的服务。

答案1

你可以从很小的空间开始。你甚至不需要注册表或类似的东西。但说实话,我不知道一个完整的解决方案。我会这样做:

基本上,您需要为每个应用程序创建一个 Dockerfile。这允许您创建容器,每个应用程序一个。我对 flask 一无所知,但这可能会对您有所帮助:Docker化你的Flask应用程序

在上面链接的文章的末尾,还有如何运行它的命令。他们没有解释(但你可能需要知道)的是,这个命令将端口 5000 从你的本地机器转发到你的容器的端口 5000。因此,你必须为每个容器更改端口,因为两个容器不能同时在同一个端口上运行。

如果你的容器之间存在依赖关系,或者需要启动多个容器,你可能需要查看docker-compose

你可能还需要一个反向代理。如果你正在将所有内容容器化,为什么不将其也容器化呢?你甚至可以将其放入同一个 docker-compose 文件中,这就是你所需要的。看看本教程了解更多信息。

最后,但并非最不重要的一点:要将其作为系统服务,创建 Systemd 服务为了它。

下一步:可能的改进是您自己的注册表和自动构建;-)

相关内容