我可以推送一个 docker 组合应用程序供其他人拉取并 运行 在他们的系统上吗?

Can I push a docker compose application for others to pull and run on their systems?

我遵循了这个 docker 教程

https://docs.docker.com/compose/gettingstarted/

所以我以 python 连接到 Redis 的应用程序结束。当我转到 http://localhost:5000/ 时,我可以看到每次刷新页面时,计数器都会加 1。我的文件夹中还有一个 yml 文件、一个需求文件和一个 docker 文件。在程序结束时,我可以 运行 docker- 组合起来,正如我所说,在我的浏览器中本地查看我的工作结果。到目前为止一切顺利。

我可以将所有这些推送到我的 docker 集线器中,以便其他人将它们作为图像提取并 运行 在他们的计算机上吗?

如何将它推送到我的集线器中? 其他人应该使用什么命令 运行 拉取图像并 运行 在他们的计算机中?

Can i push all those in my docker hub, so as for others to pull them as an image and run them on their computer?

您只能将单个图像推送到中心。不是服务,也不是整个撰写文件。

How do i push it in my hub?

在推送 Dockerfile 中定义的映像之前,您必须先使用 docker build 构建它。当您 运行 docker-compose up 时,它会为您执行构建。

我建议您阅读一些有关基本 docker 命令的指南,例如 docker builddocker tagdocker run。手动完成 docker-compose 为您完成的工作有助于理解容器工作流程。

Docker Hub 只允许您上传图片。如您所见,您只能发布 Python 程序。您可以通过两种方式让您的应用消费者 运行 这两种服务:

  • 在文档中,例如在您的 Docker Hub 存储库页面上,显示 Compose 文件的外观。使用这种方法,消费者将不得不编写自己的 Compose 文件,但他们会完全按照您的意愿复制粘贴其他服务。这是推荐的方式,也是其他流行的 Docker Hub 存储库所做的。
  • 您可以创建一个单体Dockerfile。比如保留ubuntu作为基础镜像,使用apt-get下载Python、Redis等,RUN需要的命令。这可能看起来更容易,但它会阻止消费者启动服务副本(例如,他们可能想要一个 Redis 实例,但两个 Python 个实例)。

注意:另请查看 Docker App