温馨提示×

ubuntu jenkins怎样用docker

小樊
38
2026-10-01 09:31:14
栏目: 智能运维

在 Ubuntu 上使用 Jenkins + Docker 通常有几种常见方式,下面我从最常用、最实用的角度给你讲清楚。


一、在 Ubuntu 上安装 Jenkins(宿主机方式)

1. 安装 Java

Jenkins 依赖 Java:

sudo apt update
sudo apt install openjdk-17-jdk -y

2. 安装 Jenkins

sudo wget -O /usr/share/keyrings/jenkins-keyring.asc \
  https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key

echo "deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] \
  https://pkg.jenkins.io/debian-stable binary/" | \
  sudo tee /etc/apt/sources.list.d/jenkins.list > /dev/null

sudo apt update
sudo apt install jenkins -y

3. 启动 Jenkins

sudo systemctl enable jenkins
sudo systemctl start jenkins

访问:

http://<服务器IP>:8080

二、在 Jenkins 中使用 Docker(重点)

方式一:Jenkins 直接调用宿主机 Docker(最常用)

1. 安装 Docker

sudo apt install docker.io -y
sudo systemctl enable docker
sudo systemctl start docker

2. 把 Jenkins 用户加入 docker 组

sudo usermod -aG docker jenkins
sudo reboot

⚠️ 不加重启有时不生效

3. Jenkins 中执行 Docker 命令

Pipeline 示例:

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                sh 'docker --version'
                sh 'docker build -t my-app .'
            }
        }
    }
}

✅ 适合:构建镜像、运行容器、部署


三、方式二:用 Docker 运行 Jenkins(推荐测试/隔离环境)

1. 运行 Jenkins 容器

docker run -d \
  --name jenkins \
  -p 8080:8080 \
  -p 50000:50000 \
  -v jenkins_home:/var/jenkins_home \
  jenkins/jenkins:lts

2. Jenkins 容器内使用 Docker(Docker-in-Docker 或挂载)

✅ 推荐:挂载宿主机 Docker

docker run -d \
  --name jenkins \
  -p 8080:8080 \
  -p 50000:50000 \
  -v jenkins_home:/var/jenkins_home \
  -v /var/run/docker.sock:/var/run/docker.sock \
  jenkins/jenkins:lts

这样 Jenkins 容器内可直接用宿主机 Docker。


四、方式三:Jenkins 动态 Docker Agent(专业用法)

适合大规模 CI:

  • Jenkins Master
  • 每个 Job 启动一个 Docker 容器作为 Agent
  • 用完即销毁

需要插件:

  • Docker Plugin
  • Docker Pipeline

示例:

pipeline {
    agent {
        docker {
            image 'maven:3.9'
        }
    }
    stages {
        stage('Build') {
            steps {
                sh 'mvn clean package'
            }
        }
    }
}

五、常见问题

1. permission denied docker.sock

sudo chmod 666 /var/run/docker.sock

或正确配置 docker 组(推荐)

2. Jenkins 无法访问 Docker

  • 确认 jenkins 用户在 docker 组
  • 重启 Jenkins

六、推荐组合(新手)

✅ Ubuntu
✅ Jenkins(系统安装)
✅ Docker(宿主机)
✅ Jenkins 调用 Docker 构建/部署


如果你愿意,我可以:

  • 帮你写 完整 Jenkinsfile
  • 教你 Docker + Jenkins + Git 自动部署
  • 或一步步 远程指导配置

你现在是 学习 / 公司项目 / 服务器部署 哪种场景?

0 踩