解决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="
                }
        }
}
版权声明:原创文章,欢迎转载,转载请注明出处和原文链接

学习docker

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

Docker平台下创建Jenkins Worker节点

1.镜像地址https://github.com/jenkinsci/docker-jnlp-slave2.Java Web Start(jnpl)方式部署Worker节点https://wiki.j...
  • littlebrain4solving
  • littlebrain4solving
  • 2017年06月30日 18:25
  • 370

解决Jenkins+Gitlab出现的stderr: Permission denied权限问题

在使用Jenkins构建拉取Gitlab上的仓库时总是出现权限失败,无法访问的情况,如打印以下信息:Started by user lhy Building in workspace /usr/sha...
  • lusyoe
  • lusyoe
  • 2016年10月10日 22:07
  • 9668

jenkins2.0+pipeline体验笔记

早在两年前,记录过一篇hudson的部署项目的笔记。 采用hudson部署javaWeb项目 在实际的应用中,随着项目的增加,...
  • puhaiyang
  • puhaiyang
  • 2017年12月24日 09:11
  • 196

jenkins登陆失败,Access Denied xx用户没有xx权限

提醒:每次更改权限时,要将config.xml备份一下。在打开jenkins后,没有创建用户前,先不要勾选系统设置中启用安全选项,如果勾选了,就会出现无法进入jenkins的现象。 如果已经勾选可以通...
  • lianghailun
  • lianghailun
  • 2017年06月07日 18:00
  • 473

Jenkins权限配置失误后导致登录失败(Access Denied)的解决办法

为了便于管理,Jenkins一般需要设置用户,而且这些用户是需要配置相应的权限的,如果一不小心配置的时候出了问题,那么,你就斯巴达了。 这里,用我的切身经历,为大家说一下Jenkins因为权限配置失误...
  • russ44
  • russ44
  • 2016年06月16日 09:17
  • 3915

Centos 7 安装 Jenkins

Edit Centos 7 安装 Jenkins 配置环境 jenkins 官网推荐安装 java 1.8,但是 java 1.7 也是可以的。 # yum insta...
  • CityzenOldwang
  • CityzenOldwang
  • 2017年06月04日 14:14
  • 227

Eclipse 通过JPA自动生成注解实体

Eclipse 通过JPA自动生成注解实体
  • big_bigwolf
  • big_bigwolf
  • 2016年07月25日 17:17
  • 934

把玩jenkins docker镜像遇到的volume权限问题

这两天在玩jenkins,但是在挂在数据卷的时候遇到了权限问题,如下,docker启动命令docker run -d -v /root/jenkins:/var/jenkins_home -P --n...
  • minicto
  • minicto
  • 2017年06月21日 12:41
  • 1316

Docker容器快速入门

0、Docker常用命令介绍 docker images:列出所有镜像(images) docker ps:列出正在运行的(容器)containers docker pull ubuntu:下载镜像 ...
  • chengyuqiang
  • chengyuqiang
  • 2017年12月24日 20:59
  • 123
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:解决Jenkins创建Docker Image后无法推送到私有Registry的问题
举报原因:
原因补充:

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