ECS容器定义的属性用于容器依赖性
docker compose的Links属性提供服务依赖性。
我们正在将docker compose文件映射到ECS任务定义。
从概念上讲,docker中links
属性的用途是否类似于ECS容器定义的DependsOn
属性?
links:
是第一代Docker网络设置的重要组成部分。一旦Docker引入了links:
系列命令,并且Docker Compose默认情况下建立了专用网络,它就变得不那么重要了,在现代Docker中根本没有任何理由使用它。
Compose有其自己的docker network
选项。如果服务depends_on:
depends_on:
,则当a
启动时(可能是因为您明确地depends_on: [b]
,或者可能只是作为排序约束),可以保证a
容器存在。如果docker-compose up a
是需要一段时间才能启动的数据库或其他服务,则不能保证它是functional,但是从b
的角度来看,例如b
将是有效的主机名。查看。
在一个ECS任务中,一个容器可以b
其他容器。这类似于Compose a
设置,但是它具有一个附加的dependsOn
参数,可以支持几个不同的生命周期。值得注意的是,一个容器可以等待另一个容器为dependsOn
,这是在Docker Compose中进行的一项检查,它要求等待的容器自己进行手动检查(通常使用depends_on:
这样的辅助脚本);如果一个容器只是为另一个容器设置,它也可以等待另一个容器condition
。
[如果要将Docker Compose文件移植到ECS任务中,我将首先尝试将"condition": "HEALTHY"
替换为wait-for-it.sh
,这不会引起太多功能更改;将其翻译为ECS,其语义与"condition": "COMPLETE"
非常相似。