解决Jenkins创建Docker Image后无法推送到私有Registry的问题

原创 2018年01月12日 13:08:25

最近刚开始使用Docker,把常用的命令摸了一遍后,就想把镜像的build过程放到Jenkins上。具体过程就不说了,十分简单,只需要几条命令就可以了。

可以在向私有registry推送时却报出了异常:

docker push registry.mydocker.com/demo/small:latest
The push refers to repository [registry.mydocker.com/demo/small]
c4f96d93d165: Preparing
94d1eb2ae195: Preparing
c53e037f4c89: Preparing
e15afa4858b6: Preparing
denied: requested access to the resource is denied
Build step 'Execute shell' marked build as failure
Finished: FAILURE

原因是:在push之前,需要使用docker login命令完成登录。

但是Jenkins Job的命令是以伪用户jenkins的名义执行的,因此无法直接在jenkins账户完成登录。那么如何解决呢?

  1. 使用root账户完成登录
  2. 将/root/目录下的.docker目录复制到/var/lib/jenkins
  3. 修改文件夹权限 chown -R jenkins.jenkins .docker

原理是:登录成功后会在.docker中生成一个config.json的文件,里面保存了认证的信息,以后每次执行docker pull/push时,都会通过检测该文件确定用户是否已完成认证。config.json内容:

{
        "auths": {
                "registry.mydocker.com": {
                        "auth": "s2ptYW5nAdE53SM6MXEydzNlNHApb2o="
                }
        }
}
版权声明:原创文章,欢迎转载,转载请注明出处和原文链接 https://blog.csdn.net/mydeman/article/details/79042848

基于 Mesos、Marathon、Docker环境的 Jenkins 持续集成及配置管理

-
  • 1970年01月01日 08:00

Git+Spring-boot+Docker+ Maven +Registry私有仓库 +jenkins 持续集成测试

测试Github项目地址:https://github.com/cbamls/eureka-registry 第一步 pull docker-registry#:docker pull regist...
  • lsgqjh
  • lsgqjh
  • 2017-05-21 12:40:54
  • 4233

解决docker push镜像时denied: requested access to the resource is denied : docker

背景:我用的是harbor管理镜像仓库,之前没有上传下载过harbor上的镜像。在我配置了daemon.json文件后,可以pull镜像了,但是我往library目录push的时候仍然有问题,提...
  • gezilan
  • gezilan
  • 2018-02-28 12:40:05
  • 470

学习docker

下面的内容是对docker的简单操作,包括启动docker,下载image,运行image,查看容器的详细信息、在容器中安装新程序,保持刚刚修改的容器,发布自己的镜像到docke Hub上。所有操作步...
  • liangyihuai
  • liangyihuai
  • 2017-01-26 13:19:48
  • 3248

DOCKER push失败:denied: requested access to the resource is denied

刚刚入坑,第一次push镜像失败, 原因1:命令内容无帐号信息 E:\docker\jdk8>docker push ubuntu:16-jdk8 The push refers to a r...
  • xuming9
  • xuming9
  • 2017-10-01 18:09:00
  • 772

使用Docker+Jenkins 搭建CI 自动部署

分步进行安装jenkins docker imagesudo docker pull jenkins在home 目录创建 jenkins_home 文件夹mkdir jenkins_home把jen...
  • sunzhuo1228
  • sunzhuo1228
  • 2016-07-16 15:20:00
  • 7557

基于jenkins构建应用的docker镜像做持续集成和部署

为了做持续的集成和部署,引入了jenkins,利用jenkins来构建应用的docker镜像并push到私有仓库,然后再基于应用的docker镜像来发布项目,这样减少了很多的手动操作,基本能实现持续集...
  • JThink_
  • JThink_
  • 2017-04-27 10:11:09
  • 6805

解决 Docker pull 出现的 error pulling image configuration: Get https://dseasb33srnrn.cloudfront.net/

出现这个问题,一般的原因是无法连接到 docker hub,通过: systemctl stop docker echo "DOCKER_OPTS=\"\$DOCKER_OPTS --regi...
  • sfdst
  • sfdst
  • 2017-04-05 20:31:06
  • 9995

Ubuntu 16.04 安装Docker ,Pull Docker image的时候遇到docker pull TLS handshake timeout

docker run hello-world 执行该语句报错。。。。 遇到了下的问题, error pulling image configuration: Get https://dseasb...
  • han_cui
  • han_cui
  • 2017-02-15 10:50:46
  • 6521
收藏助手
不良信息举报
您举报文章:解决Jenkins创建Docker Image后无法推送到私有Registry的问题
举报原因:
原因补充:

(最多只允许输入30个字)