在ECS Fargate中从Dockerhub中提取公共映像

时间:2019-05-08 09:03:56

标签: amazon-ecs

当我在ECS Fargate群集上配置任务定义以提取nginx:latest时,它会失败

STOPPED (CannotPullContainerError: Error response from daemon)

我不知道要在任务定义字段“图像”中添加什么。

它说有“ repository-url / image:tag”,但是如果我想从dockerhub中提取公共nginx图像,显然不是“ nginx:latest”。 dockerhub的库URL是什么?

1 个答案:

答案 0 :(得分:3)

在ECS FARGATE / EC2中,当我们将图像分隔时,我们可以直接分隔任何能够通过docker命令将其拉出的图像名称。

例如,如果我们能够使用命令docker pull nginx提取最新的nginx图像,那么如果不指定任何标签,它将提取最新的图像。在ECS中这是同一件事,因此我们可以指定nginx或nginx:latest都可以使用。这表示您提供的图片名称正确。

我们看到此错误的原因与映像无关,但可能与在FARGATE中运行的容器无法提取映像的网络有关。

我们必须记住,FARGATE始终使用AWS VPC网络模式,这意味着有两种方法可以在FARGATE中运行任务:

  1. 如果我们尝试在公共子网中运行任务,则必须启用自动分配公共IP,并且必须确保公共子网路由表具有IGW或任何其他网关,这些网关将提供适当的Internet连接将允许容器从公共docker存储库中提取图像。

  2. 如果我们尝试在私有子网中运行任务,则必须禁用自动分配公用IP,并且必须确保私有子网路由表具有NAT网关,这将允许容器从中提取映像公共泊坞库。

[1] https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-configure-network.html