1、准备一台Linux或Windows系统安装aws命令;
Linux下curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install --bin-dir /usr/local/bin --install-dir /usr/local/aws-cli --update
#安装可参考链接:https://docs.amazonaws.cn/cli/latest/userguide/getting-started-install.html
aws命令设置凭证:
$ aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: cn-north-1
Default output format [None]: json
#参考链接:https://docs.amazonaws.cn/cli/latest/userguide/cli-configure-files.html
2、在AWS控制台创建存储库;
3、推送镜像命令参考示例;
a.检索身份验证令牌并向注册表验证 Docker 客户端身份。
使用 亚马逊云科技 CLI:
aws ecr get-login-password --region cn-north-1 | docker login --username AWS --password-stdin xxxxxxx.dkr.ecr.cn-north-1.amazonaws.com.cn
注意: 如果您在使用 亚马逊云科技 CLI 时遇到错误,请确保您已安装最新版本的 亚马逊云科技 CLI 和 Docker。
b.使用以下命令生成 Docker 映像。有关从头生成 Docker 文件的信息,请参阅说明 此处 。如果您已生成映像,则可跳过此步骤:
docker build -t demoapp .
c.生成完成后,标记您的映像,以便将映像推送到此存储库:
docker tag demoapp:latest xxxxxxx.dkr.ecr.cn-north-1.amazonaws.com.cn/demoapp:latest
d.运行以下命令将此映像推送到您新创建的 亚马逊云科技 存储库:
docker push xxxxxxx.dkr.ecr.cn-north-1.amazonaws.com.cn/demoapp:latest
注:把xxxxxxx替换为自己账号ID
4、点击“存储库名称”查看镜像推送;
5、如果EKS需要拉镜像,可使用secret,然后deployment文件使用secret。
kubectl create secret docker-registry demo --docker-server=xxxxxxx.dkr.ecr.cn-north-1.amazonaws.com.cn --docker-username=AWS --docker-password=`aws ecr get-login-password --region cn-north-1`
6、命令生成令牌token有效期为12个小时,可自动义shell脚本每12个小时定期更新token。
#!/bin/sh
#jenkins构建端push镜像脚本,每12个小时执行一次
aws ecr get-login-password --region cn-north-1 | docker login --username AWS --password-stdin xxxxxxx.dkr.ecr.cn-north-1.amazonaws.com.cn