【问题标题】:Running docker image on pivotal cloud foundry在关键的 Cloud Foundry 上运行 docker 镜像
【发布时间】:2016-06-21 12:06:06
【问题描述】:

我有一个在 docker 容器中运行的应用程序。是否可以在不对应用程序或容器本身进行任何更改的情况下在 Cloud Foundry 中部署包含应用程序的 docker 容器?

【问题讨论】:

  • 您有什么样的 Cloud Foundry 设置?您是否使用托管 CF、从开源代码部署自己的 CF 等?根据您在以下答案中的评论,听起来您可能暴露了多个端口,这是真的吗?还是在同一端口上暴露为不同 URL 路径的多个端点?
  • 我们在内部服务器中托管了一个私有的 PCF 实例。是的,我所说的 docker 实例在端口 8080 上暴露了 servlet 端点。这些是在同一个端口上运行的多个端点。

标签: spring docker spring-boot cloud-foundry


【解决方案1】:

要回答您是否需要对 Docker 映像进行更改的具体问题,以下是相关信息。

  • 目前不支持挂载卷或链接容器,但支持这些用例的项目正在积极进行中,因此如果您的 docker run 工作流通常涉及您将不得不等待。
  • 仅支持 v2 Docker 注册表,因此如果您的映像存储库位于具有较旧 API 的 Docker 注册表中,它将无法正常工作。
  • 不支持私有存储库(即需要用户名和密码才能访问注册表中的映像的存储库)。但是,您可以提供自己的自定义注册表并使其只能由您的 CF 后端访问,然后将您的图像作为公共存储库推送到该自定义注册表。

(从official CF docs site 和Diego design notes 过滤的信息)

【讨论】:

    【解决方案2】:

    正如 Cloud Foundry 的 documentation 中所讨论的,您应该首先使用以下命令启用 diego_docker 功能标志:

    cf enable-feature-flag diego_docker
    

    然后使用cf push 来推送你的docker镜像。 6.13.0 及更高版本的 CF CLI 包括对将 Docker 映像作为 CF 应用程序推送的本机支持,带有 cf push 命令的 -o 或 --docker-image 标志。例如,运行:

    cf push lattice-app -o cloudfoundry/lattice-app
    

    将推送位于cloudfoundry/lattice-app 的图像。您还可以阅读here 了解有关 CF + Diego 中的 Docker 支持的更多信息。

    【讨论】:

    • 感谢阿里!这是否意味着我不必对应用程序进行更改?该应用程序具有多个 servlet 端点。
    • 您的容器不需要更改,但您应该将您的容器上传到公共 docker 注册表,因为 diego 目前不支持从私有存储库获取图像。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-17
    • 1970-01-01
    • 2019-04-03
    • 2016-03-20
    相关资源
    最近更新 更多