我想把已经创建的docker映像推送到aws ecr



我已经创建了docker镜像,我想使用脚本或CI/CD管道将所有外部docker镜像推送到aws ECR。

一次,我知道了AWS CodeBuild过程。但还有别的办法吗?

CI/CD有很多方法。例如,你可以使用GitHub Actions

在您的免费帐户中:

2,500 free credits/week
Run 1 job at a time
Build on Linux, Windows, and Arm

所以,你可以创建一个私有存储库,并使用Dockerfile推送所有文件。

之后,创建Actions并配置一个作业来构建Docker镜像,然后将其推送到ECR

有Amazon ECR "Login"GitHub Actions

- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v1
- name: Build, tag, and push image to Amazon ECR
env:
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
ECR_REPOSITORY: my-ecr-repo
IMAGE_TAG: ${{ github.sha }}
run: |
docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG .
docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG

它可以作为:

  • 将更改推送到存储库
  • 操作开始,构建docker镜像,然后将docker镜像推送到AWS ECR。

docker push

我已经创建docker镜像

正如您所说,本地创建的图像。因此,您的文件系统中有这些图像。

在这种情况下,您可能需要docker push

docker image push registry-host:<port>/myimagetag:latest

对于ECS,它将是

docker push aws_account_id.dkr.ecr.region.amazonaws.com/myimagetag:tag

migrator

有一个项目Docker -archive/migrator: Tool可以将Docker镜像从Docker Hub或v1注册表迁移到v2注册表。不幸的是,存储库已被归档。但是应该可以。
docker run -it 
-v /var/run/docker.sock:/var/run/docker.sock 
-e AWS_ACCESS_KEY_ID=<key> 
-e AWS_SECRET_ACCESS_KEY=<secret> 
-e V1_REGISTRY=v1.registry.fqdn 
-e V2_REGISTRY=v2.registry.fqdn 
docker/migrator

相关内容

最新更新