【DevOps】Jenkins 集成Docker

60 篇文章 0 订阅
14 篇文章 0 订阅

目录

1. 安装 Docker 和 Jenkins

2. 在 Jenkins 中安装 Docker 插件

3. 配置 Docker 连接

4. 创建 Jenkins Pipeline

5. 示例 Pipeline 脚本

6. 运行 Jenkins Job

7. 扩展功能

8、docker配置测试连接的时候报错处理


将 Docker 与 Jenkins 集成可以实现持续集成和持续交付 (CI/CD) 流程的自动化,提高开发效率和软件质量。以下是详细的集成步骤:

1. 安装 Docker 和 Jenkins

2. 在 Jenkins 中安装 Docker 插件

  • 进入 Jenkins 管理界面,选择 "Manage Jenkins" -> "Manage Plugins"。
  • 在 "Available" 标签页搜索 "Docker Pipeline" 和 "Docker Commons Plugin" 插件,并进行安装。

3. 配置 Docker 连接

  • 进入 Jenkins 管理界面,选择 "Manage Jenkins" -> "Configure System"。
  • 找到 "Cloud" 部分,点击 "Add a new cloud",选择 "Docker"。
  • 配置 Docker 主机的 URL(例如:unix:///var/run/docker.sock)。
  • 测试连接是否成功。

  • 可以配置多个 Docker 连接,例如用于开发、测试和生产环境。

4. 创建 Jenkins Pipeline

  • 创建一个新的 Jenkins Job,选择 "Pipeline" 类型。
  • 在 Pipeline 脚本中使用 Docker 插件提供的步骤来构建和运行 Docker 镜像。

5. 示例 Pipeline 脚本

pipeline {
    agent {
        docker {
            image 'maven:3-alpine' 
            args '-v /root/.m2:/root/.m2' 
        }
    }
    stages {
        stage('Build') {
            steps {
                sh 'mvn clean package' 
            }
        }
        stage('Test') {
            steps {
                sh 'mvn test' 
            }
        }
        stage('Deploy') {
            steps {
                sh 'docker build -t my-app . ' 
                sh 'docker run -d -p 8080:8080 my-app' 
            }
        }
    }
}

脚本解释:

  • agent: 指定 Jenkins Job 运行的环境,这里使用 Docker 镜像 maven:3-alpine
  • args: 指定 Docker 容器启动参数,这里将本地 Maven 仓库挂载到容器中。
  • stages: 定义 Pipeline 的不同阶段,例如构建、测试和部署。
  • steps: 每个阶段包含具体的执行步骤,例如使用 Maven 构建项目、运行测试和构建 Docker 镜像。

6. 运行 Jenkins Job

  • 保存 Pipeline 脚本并运行 Jenkins Job。
  • Jenkins 将会自动启动 Docker 容器,并在容器内执行构建、测试和部署步骤。

7. 扩展功能

  • 可以使用 Docker Compose 运行多个容器的应用程序。
  • 可以使用 Kubernetes 插件将应用程序部署到 Kubernetes 集群。
  • 可以使用 Jenkins Shared Libraries 来共享 Pipeline 脚本和代码。

8、docker配置测试连接的时候报错处理

测试连接的时候报错了:java.io.IOException: com.sun.jna.LastErrorException: [13] Permission denied 

这个错误通常表示 Jenkins 没有足够的权限访问 Docker 守护进程。要解决这个问题,你可以尝试以下几种方法:

  • 将 Jenkins 用户添加到 docker 组:

    • 在终端中执行以下命令,将 Jenkins 用户添加到 docker 组:
      sudo usermod -aG docker jenkins
      
    • 重启 Jenkins 服务,使更改生效:
      sudo systemctl restart jenkins
      
  • 使用 sudo 运行 Docker 命令:

    • 在 Jenkins 系统配置页面(Manage Jenkins -> Configure System),找到 Docker 部分。
    • 在 "Docker Host URI" 字段中,将值更改为:unix:///var/run/docker.sock
    • 在 "Connect method" 部分,选择 "Connect with SSH"。
    • 配置 SSH 的详细信息,如主机名、用户名和认证方式。
    • 在 "Prefix Start Command" 字段中,输入 sudo,这将使 Jenkins 以 sudo 权限运行 Docker 命令。
  • 修改 Docker 守护进程的配置:

    • 编辑 Docker 守护进程的配置文件(通常位于 /etc/docker/daemon.json),添加以下内容:
      {
        "group": "jenkins",
        "live-restore": true
      }
      
    • 重启 Docker 守护进程,使更改生效:
      sudo systemctl restart docker
      
  • 使用 TCP 连接而不是 Unix 套接字:

    • 编辑 Docker 守护进程的配置文件(通常位于 /etc/docker/daemon.json),添加以下内容:
      {
        "hosts": ["tcp://0.0.0.0:2375"]
      }
      
    • 重启 Docker 守护进程,使更改生效:
      sudo systemctl restart docker
      
    • 在 Jenkins 的 Docker 配置中,将 "Docker Host URI" 更改为:tcp://localhost:2375

请注意,上述方法可能会根据你的具体环境和安全要求而有所不同。在修改配置之前,请务必了解每个选项的安全隐患。

在进行任何更改后,请确保重启 Jenkins 和 Docker 守护进程,以使更改生效。然后,重新测试 Jenkins 与 Docker 的连接,确保问题已经解决。

  • 45
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 53
    评论
DockerJenkins是两个流行的工具,都被广泛应用于DevOps和持续集成/持续交付(CI/CD)领域。Docker是一个开源的容器化平台,可以轻松地打包、交付和运行应用程序。Jenkins是一个流行的开源持续集成工具,可以自动化构建、测试和部署应用程序。 使用DockerJenkins可以搭建一个高效的CI/CD环境。通过将Jenkins作为Docker容器运行,可以轻松地扩展Jenkins服务器,并且可以方便地使用Docker构建工具来构建和测试应用程序。下面是使用DockerJenkins搭建CI/CD环境的基本步骤: 1. 安装DockerJenkins 首先需要在服务器上安装DockerJenkins。安装方法可以参考官方文档或者网上的教程。安装完毕后,启动DockerJenkins服务。 2. 配置JenkinsJenkins中,需要安装一些插件,例如Docker Pipeline插件Docker插件。这些插件可以帮助JenkinsDocker集成,实现自动化构建和部署。 3. 创建Jenkins Pipeline 使用Jenkins Pipeline功能,可以将应用程序的构建和部署流程定义为一个Jenkinsfile文件。在Jenkinsfile文件中,可以指定Docker镜像的构建和部署操作。例如,可以使用Dockerfile文件构建Docker镜像,并使用Docker Compose部署应用程序。 4. 构建Docker镜像 使用Dockerfile文件定义应用程序的环境和依赖,然后使用Docker构建工具构建Docker镜像。可以使用Jenkins Pipeline中的Docker构建步骤来构建Docker镜像。 5. 部署应用程序 使用Docker Compose工具可以轻松地部署应用程序。可以使用Jenkins Pipeline中的Docker Compose步骤来部署应用程序。 6. 集成测试 使用Docker Compose可以轻松地在本地环境中进行集成测试。可以使用Jenkins Pipeline中的Docker Compose步骤来运行集成测试。 7. 自动化部署 使用Jenkins的自动化部署功能,可以在代码提交后自动构建和部署应用程序。可以使用Jenkins Pipeline中的Git插件来实现自动化部署。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 53
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Coder加油!

感谢您的认可和支持!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值