[Docker]记一次使用jenkins将镜像文件推送到Harbor遇到的问题

news/2025/1/20 8:10:45/

系统版本: Ubuntu 18.01
私服: Harbor
Docker版本: Docker version 18.09.5
首先需要明确的是,即在harbor里项目设置为公开,但是在push的时候还是需要用户验证的,即需要使用docker登录

docker login harbor.zyg.com(私服的地址),输入用户名和密码后即会在当前用户的/home/用户名/.docker/下生成一个config.json文件
但这只是当前用户能够使用的,每一次在使用docker pull/push时都会使用这个文件

问题一、 避免一般用户在使用docker的时候使用sudo

1、创建docker用户组,一般在安装的时候会自动创建
2、添加用户到docker组sudo usermod -aG docker $USER
问题二、 Jenkins执行shell脚本里的docker命令报权限不足

因为在执行shell系统使用的是jenkins伪用户,所以这时需要将jenkins加入docker用户组
sudo gpasswd -a jenkins docker
sudo service jenkins restart (一定要重启)
问题三、 Jenkins推送镜像报错denied: requested access to the resource is denied

复制代码
The push refers to repository [harbor.zyg.com/microservices/zhaiugo-id-service]
ead29f23f10c: Preparing
c1d68427d6dd: Preparing
c03339557420: Preparing
b8fded14819b: Preparing
10975dc549b8: Preparing
1e11e2a062fc: Preparing
a8eed0ba0657: Preparing
1e11e2a062fc: Waiting
a8eed0ba0657: Waiting
denied: requested access to the resource is denied
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
ERROR: script returned exit code 1
Finished: FAILURE
还是因为jenkins在推送镜像的时候使用的是jenkins的伪用户,那么既然要推送就要登录,将之前生成的config.json拷贝到jenkins的目录下即可
1、使用root登录后
2、将/root/.docker/config.json 拷贝到 /var/lib/jenkins/.docker/下
3、修改文件夹权限 chown -R jenkins.jenkins .docker (在/var/lib/jenkins目录下执行)

包括再jenkins中使用k8s命令,也需要配置jenkins访问k8s的权限凭证
步骤一样
将/root/.kube/config 拷贝到 /var/lib/jenkins/.kube/下
修改文件夹权限 chown -R jenkins.jenkins .kube (在/var/lib/jenkins目录下执行)


http://www.ppmy.cn/news/1225708.html

相关文章

常见的数据结构有哪些?

数据结构分为逻辑结构和物理结构。 逻辑结构:指数据元素之间逻辑关系的数据结构,这里的逻辑关系是指数据元素之间的前后间关系,与数据在计算机中的存储位置无关。物理结构:指数据的逻辑结构在计算机存储空间中的存放形式称为数据…

第六章SELinux

1.概述 1.1.概念 SELinux(Security-Enhanced Linux)是美国国家安全局在 Linux 开源社区的帮助下开发的-个强制访问控制(MAC,Mandatory Access Control)的安全子系统,用于各个服务进程都受到约束,使其仅获取到本应获取的资源 例如&am…

『 MySQL数据库 』数据库之表的约束

文章目录 前言 💻空属性约束(非空约束) 🔖default约束(默认值约束,缺省) 🔖列描述comment 🔖数字类型长度zerofill 🔖主键primary key 🔖📍 追加主键 📍📍 删除主键 &…

Nginx负载均衡机制及常见问题

介绍 Nginx是目前主流的WEB服务器发布软件,不仅可以作为强大的web服务器,也可以作为一个反向代理服务器,而且nginx还可以按照调度规则实现动静分离,可以按照轮询、ip_hash、URL哈希、权重等多种方式对后端服务器做负载均衡&#…

Unity 6 是下一个 LTS 版本即将发布

Unity 公司宣布,即将发布 Unity 6,并表示其为下一个长期支持版本 (LTS)。 Unity 在大会上演示了全新的 Unity 6引擎,并通过 Syncy Studios 采用 Unity 6 制作的《幻想王国(Fantasy Kingdom)》Demo 进行了演示&#xff…

中国净初级生产力年度合成产品NPP(MYD17A3H.006)

中国净初级生产力年度合成产品NPP(MYD17A3H.006)由航天宏图实验室提供,根据NASA MODIS数据(MYD17A3H.006)通过航天宏图 Smoother计算得到的平滑后NPP产品,解决了影像云雾覆盖、像元异常值等问题。对处理后的…

微服务测试怎么做

开发团队越来越多地选择微服务架构而不是单体结构,以提高应用程序的敏捷性、可扩展性和可维护性。随着决定切换到模块化软件架构——其中每个服务都是一个独立的单元,具有自己的逻辑和数据库,通过 API 与其他单元通信——需要新的测试策略和新…

[Linux版本Debian系统]安装cuda 和对应的cudnn以cuda 12.0为例

写在前面 先检查自己有没有安装使用wget的命令,没有的话输入下面命令安装: apt-get install wget -y查看gcc的安装 sudo apt install gcc #安装gcc gcc --version #查看gcc是否安装成功 #若上述命令不成功使用下面的命令尝试之后再执行上面…