如何将构图图像推送到ECR?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将构图图像推送到ECR?相关的知识,希望对你有一定的参考价值。

我有一个docker-compose文件:

version: '3.4'
services:
  nginx:
    container_name: some-nginx
    image: nginx:latest
    restart: always
    ports:
      - 80:80
      - 443:443

  mongodb:
    container_name: some-mongo
    image: mongo:latest
    environment:
      - MONGO_DATA_DIR=/data/db
      - MONGO_LOG_DIR=/dev/null
    ports:
      - 27017:27017
    command: mongod --smallfiles --logpath=/dev/null # --quiet

我想使用命令推送到Amazon Elastic Container Registry(ECR):

docker tag testapper:latest 619625705037.dkr.ecr.us-east-2.amazonaws.com/testapper:latest

但我收到一条消息:

来自守护程序的错误响应:没有这样的图像:testapper:latest

当我运行docker-compose build时,我收到了这条消息:

nginx uses an image, skipping
mongodb uses an image, skipping

这是什么意思?如何将我的图像推送到ECR?

答案

您的docker容器都使用现有图像(image关键字)

services:
  nginx:
    image: nginx:latest

  mongodb:
    image: mongo:latest

因此,您不需要构建它们。

我相信ECS会自己找到这些官方图片,因此您无需将它们推送到您的私人仓库(ECR)。 (不是100%肯定)

如果您确实想要推送自定义构建的图像,一般流程是

docker build -t your_image_name:tag path
docker tag your_image_name:tag 619625705037.dkr.ecr.us-east-2.amazonaws.com/your_image_name:tag
# or
docker build -t 619625705037.dkr.ecr.us-east-2.amazonaws.com/your_image_name:tag path


docker push 619625705037.dkr.ecr.us-east-2.amazonaws.com/your_image_name:tag

如果您的撰写文件是这样的话,您可以使用docker-compose build同时构建和标记

services:
  nginx:
    image: 619625705037.dkr.ecr.us-east-2.amazonaws.com/your_image_name:tag
    build: ./my-nginx-path

以上是关于如何将构图图像推送到ECR?的主要内容,如果未能解决你的问题,请参考以下文章

AWS ECR Repository - 如何从一个账户复制图像并推送到另一个账户

无法将图像推送到 Amazon ECR - 因“没有基本身份验证凭证”而失败

将 docker 容器从本地推送到 aws ecr

将新映像推送到 ECR 存储库时如何自动部署到 ECS Fargate

如何从 AWS ECR Container Registry 中删除未标记的图像

ECS 使用 ECR 自动部署