解决Jenkins与Docker登录问题

79次阅读
没有评论

https://index.docker.io/v1/WARNING! Using –password via the CLI is insecure. Use –password-stdin.Error response from daemon: Get https://registry-1.docker.io/v2/: unauthorized: incorrect username or password[Pipeline] // withDockerRegistry


## 解决方案
> 请注意以下操作注意版本差异及修改前做好备份。
### 使用不同的凭据登录
你的问题出在使用AWS ECR凭据尝试登录Docker Hub,但这是不起作用的。Docker Hub是一个不同的镜像仓库,而ECR只是一个私有的镜像仓库。

对于从Docker Hub拉取公共镜像,不需要登录。你可以直接使用`docker pull`命令来从Docker Hub拉取镜像。例如:
```bash
docker pull mongo

但是,当你想要从ECR拉取镜像时,你需要先登录到AWS ECR,然后才能拉取镜像。以下是如何解决这个问题的步骤:

步骤1:拉取公共镜像

如果你只是想从Docker Hub拉取公共镜像,不需要登录。使用以下命令即可:

docker pull 镜像名称

步骤2:从ECR拉取镜像

如果你需要从AWS ECR拉取镜像,首先需要使用AWS ECR凭据登录,然后才能拉取镜像。以下是具体步骤:

  1. 登录到AWS ECR:
    在命令行中使用以下命令登录到AWS ECR。替换 <aws_access_key><aws_secret_key> 为你的AWS访问密钥:
aws ecr get-login-password --region <AWS_Region> | docker login --username AWS --password-stdin <AWS_Account_ID>.dkr.ecr.<AWS_Region>.amazonaws.com
  1. 拉取ECR中的镜像:
    登录成功后,你可以使用以下命令从AWS ECR拉取镜像。替换 <repository_name><tag> 为你的镜像名称和标签:
docker pull <AWS_Account_ID>.dkr.ecr.<AWS_Region>.amazonaws.com/<repository_name>:<tag>

通过以上步骤,你应该能够解决登录问题并从相应的镜像仓库中拉取镜像。

请注意,确保你在Jenkins流水线中使用正确的登录凭据和拉取命令,以及替换所有的占位符。这样,你就可以成功拉取所需的镜像并进行构建了。

正文完