【问题标题】:DependsOn vs links - docker-compose vs ECS taskDependsOn vs 链接 - docker-compose vs ECS 任务
【发布时间】:2020-06-25 22:10:19
【问题描述】:

DependsOn

ECS容器定义的属性用于容器依赖

docker compose 的Links 属性提供服务依赖。


我们正在将 docker compose 文件映射到 ECS 任务定义。

从概念上讲,docker compose 中links 属性的用途是否类似于ECS 容器定义的DependsOn 属性?

【问题讨论】:

标签: docker docker-compose amazon-ecs docker-container


【解决方案1】:

links: 是第一代 Docker 网络设置的重要组成部分。一旦 Docker 引入了docker network 系列命令并且 Docker Compose 默认设置了一个私有网络,它就变得不那么重要了,而且在现代 Docker 中根本没有任何理由使用它。

Compose 有自己的 depends_on: 选项。如果服务adepends_on: [b],那么当a 启动时(可能是因为你明确地docker-compose up a,或者可能只是作为一个排序约束)b 容器保证存在。如果b 是数据库或其他需要一段时间才能启动的服务,则不能保证它是功能,但例如b 将是来自a 的有效主机名'的观点。

在单个 ECS 任务中,一个容器可以dependsOn 其他容器。这类似于 Compose depends_on: 设置,但它有一个额外的 condition 参数,可以支持几个不同的生命周期。值得注意的是,一个容器可以等待另一个容器成为"condition": "HEALTHY",这是 Docker Compose 中的一项检查,需要等待的容器自己手动检查(通常使用像 wait-for-it.sh 这样的帮助脚本);如果一个容器只是为另一个容器设置,它也可以等待另一个容器到"condition": "COMPLETE"

如果您要将 Docker Compose 文件移植到 ECS 任务中,我会先尝试将 links: 替换为 depends_on:,这不会导致太大的功能变化;将其翻译为 ECS,其语义与 "dependsOn": [{"condition": "START"}] 非常相似。

【讨论】:

  • 是的,我正在将 docker compose 移植到 ECS 任务中
猜你喜欢
  • 1970-01-01
  • 2018-12-04
  • 2017-11-26
  • 2018-12-18
  • 2019-11-21
  • 2020-12-23
  • 2022-10-13
  • 2017-03-06
  • 1970-01-01
相关资源
最近更新 更多