【问题标题】:Can I push a docker compose application for others to pull and run on their systems?我可以推送一个 docker compose 应用程序以供其他人拉取并在他们的系统上运行吗?
【发布时间】:2020-10-05 09:22:36
【问题描述】:

我遵循了这个 docker 教程

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

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

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

如何将它推送到我的集线器中? 其他人应该运行哪些命令来拉取映像并在他们的计算机上运行它?

【问题讨论】:

  • Docker 上关于 Push 和 Pull 的文档非常全面。
  • Docker 上关于 compose Push 和 Pull 的文档平均有 20% 的喜欢,而 80% 的不喜欢是有原因的。自己检查。不,它们不是很全面。请不要对我的问题投反对票。如果你能帮忙,如果这很简单,请帮助我。
  • "我可以将所有这些都推送到我的 docker hub 中,以便其他人将它们作为图像提取并在他们的计算机上运行它们吗?" compose.yml 中的所有内容都不会被推送到 docker hub。只有图像被推送到那里。

标签: python docker redis docker-compose linux-containers


【解决方案1】:

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

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

注意:同时查看Docker App

【讨论】:

    【解决方案2】:

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

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

    如何将其推送到我的中心?

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

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

    【讨论】:

    • 我知道如何构建、推送、拉取和运行一个简单的应用程序。让我以更简单的方式表达我的问题:我有一个应用程序,就像我在原始帖子中发布的 docker 指南中的应用程序一样。一个连接到 Redis 的 python 应用程序,它在 localhost:5000 中生成结果。我希望其他人能够使用我创造的东西。我们如何做到这一点?我只推送我的 Python 应用程序?其他人应该怎么做才能使用我的创作?他有义务创建自己的 yml 吗?
    • 是的,其他人也必须使用撰写文件。您唯一可以推送的是应用图像本身
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-12
    • 1970-01-01
    • 1970-01-01
    • 2012-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多