欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > 【Jenkins】解决在Jenkins Agent节点容器内无法访问物理机的docker和docker compose的问题

【Jenkins】解决在Jenkins Agent节点容器内无法访问物理机的docker和docker compose的问题

2024/10/28 13:47:26 来源:https://blog.csdn.net/qq_45660232/article/details/143215642  浏览:    关键词:【Jenkins】解决在Jenkins Agent节点容器内无法访问物理机的docker和docker compose的问题

解决在Jenkins Agent节点容器内无法访问物理机的docker和docker compose的问题

  • 1. 确定物理机docker和docker compose已经安装
  • 2. 编写Jenkins Agent结点docker-compose.yaml配置文件
  • 3. 修改docker运行时文件权限
  • 4. 启动容器并验证

最近接触到一个发布产物是一个 docker镜像的项目,想使用 Jenkinspipeline结合 Harbor实现 CICD效果。
笔者电脑环境: ubuntu20.04

1. 确定物理机docker和docker compose已经安装

验证指令:

docker version

输出结果:
在这里插入图片描述

docker compose version

输出结果:
在这里插入图片描述
若未安装,输入一下指令进行安装
官方链接:跳转

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

2. 编写Jenkins Agent结点docker-compose.yaml配置文件

文件内容如下:

services:jenkins-agent:image: jenkins/inbound-agentcontainer_name: jenkins-agentenvironment:- JENKINS_URL=<填入master节点地址>- JENKINS_AGENT_NAME=<填入agent节点名称>- JENKINS_AGENT_WORKDIR=/home/jenkins/agent- JENKINS_SECRET=<填写创建节点时生成的密钥>volumes:- /var/run/docker.sock:/var/run/docker.sock  # 共享 Docker 套接字- /usr/bin/docker:/usr/bin/docker  # 共享 Docker CLI- /usr/libexec/docker/cli-plugins/docker-compose:/usr/libexec/docker/cli-plugins/docker-compose- jenkins-agent-workdir:/home/jenkins/agentrestart: unless-stopped
volumes:jenkins-agent-workdir:

3. 修改docker运行时文件权限

sudo chmod 666 /var/run/docker.sock

4. 启动容器并验证

在docker-compose.yaml同目录执行:

docker compose up -d

在容器内验证dockerdocker compose指令:

docker exec -u root -it jenkins-agent /bin/bash -c "docker version && docker compose version"

输出结果:
在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com