【问题标题】:How do I really deploy docker-compose.yml to the cloud?我如何真正将 docker-compose.yml 部署到云端?
【发布时间】:2019-02-25 22:20:03
【问题描述】:

我有一个docker-compose.yml 配置,可以启动多个服务,例如SQL ServerredisElasticsearch。在本地开发中一切正常,我在 Windows 机器上运行 docker-compose up -d --build 并将其 IPports 号码公开。这就是我部署 docker 容器的方式。

但是如何将它部署到云端呢?哪个网站提供这项服务?我知道AWS 可以托管容器,但它可以运行docker-compose up -d --build 吗?

我一直在尝试 google 搜索 deploy docker containers,但我只能在本地机器上部署 docker 容器,或者使用 kubernetes 进行部署,我对此一无所知。

【问题讨论】:

    标签: amazon-web-services docker deployment docker-compose cloud


    【解决方案1】:

    我的 github 存储库中有一个示例,用于在 Amazon Lightsail 上启动 docker compose,但对于 EC2,该过程非常相似

    向下滚动到自述文件的 Docker 部分。对于 EC2,您只需将脚本粘贴到 EC2 创建过程中的用户数据部分,而不是使用“启动脚本”对话框。

    https://github.com/mikegcoleman/todo

    【讨论】:

      【解决方案2】:

      一般来说docker-compose可以用来部署在生产环境中。您可以做的只有一个区别,而不是构建图像,您可以将图像推送到 AWS ECR 或任何替代注册表,如 Gitlab 注册表(如果您使用 Gitlab)然后您可以将图像直接拉到您要去的服务器/实例部署。

      AWS 也有一个名为 ECS 的服务,它也可用于部署容器,但无需使用 docker-compose

      【讨论】:

      • 如果来自docker-compose.yml 的图像已经从云中提取,我不必这样做,对吗?港口怎么样?来自不同服务的端口会正常暴露吗?假设example.com。 Elasticseach 在example.com:9200 上,Nodejs 在example.com:3000 上?
      • 是的,如果它们已经是公共图像,则无需自己托管它们。关于端口,如果您需要将它们公开并暴露给特定的 ip,请确保在您的安全组中允许所需的端口。例如端口 80 将是公共的,ssh 端口(主机本身)应该用于特定的 ips 等等。弹性搜索不需要公开它,只要它会在内部使用,同样适用于 nodejs,你需要在它前面有一个反向代理。在这种情况下,您可能会使用 nginx 容器
      • @PineAppleBanana 如果您需要进一步解释,请告诉我,如果此答案适合您,请考虑将其标记为您的问题的已接受答案。
      • Docker 现在有 ECS 集成 docs.docker.com/cloud/ecs-integration
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-29
      • 1970-01-01
      • 2016-06-29
      • 1970-01-01
      • 2020-05-02
      • 2020-07-24
      • 1970-01-01
      相关资源
      最近更新 更多