从ECS Fargate的Dockerhub汲取公众图像



当我在ecs fargate cluster上配置我的taskDefintion以拉Nginx:最新它将失败,

STOPPED (CannotPullContainerError: Error response from daemon)

我无法理解将什么放入任务定义字段"图像"。

它说" repository-url/image:tag",但显然不是" nginx:最新",如果我想从dockerhub提取公共nginx映像。dockerhub的存储库是什么?

在ecs fargate/ec2中,当我们指定图像时,我们可以直接指定我们能够通过docker命令将其拉动的任何图像名称。

例如,如果我们能够使用命令docker pull nginx拉出最新的Nginx映像,如果我们不指定任何标签,则它将摘取最新图像。这在EC中是同一件事,因此我们可以指定NGINX或NGINX:最新都可以使用。这意味着您提供的图像名称是正确的。

我们看到此错误与映像无关,但它可能与在Fargate中运行的集装箱无法拉出图像的网络有关。

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

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

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

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

最新更新