在 Ubuntu 上使用 Jenkins + Docker 通常有几种常见方式,下面我从最常用、最实用的角度给你讲清楚。
Jenkins 依赖 Java:
sudo apt update
sudo apt install openjdk-17-jdk -y
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
sudo systemctl enable jenkins
sudo systemctl start jenkins
访问:
http://<服务器IP>:8080
sudo apt install docker.io -y
sudo systemctl enable docker
sudo systemctl start docker
sudo usermod -aG docker jenkins
sudo reboot
⚠️ 不加重启有时不生效
Pipeline 示例:
pipeline {
agent any
stages {
stage('Build') {
steps {
sh 'docker --version'
sh 'docker build -t my-app .'
}
}
}
}
✅ 适合:构建镜像、运行容器、部署
docker run -d \
--name jenkins \
-p 8080:8080 \
-p 50000:50000 \
-v jenkins_home:/var/jenkins_home \
jenkins/jenkins:lts
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。
适合大规模 CI:
需要插件:
示例:
pipeline {
agent {
docker {
image 'maven:3.9'
}
}
stages {
stage('Build') {
steps {
sh 'mvn clean package'
}
}
}
}
sudo chmod 666 /var/run/docker.sock
或正确配置 docker 组(推荐)
✅ Ubuntu
✅ Jenkins(系统安装)
✅ Docker(宿主机)
✅ Jenkins 调用 Docker 构建/部署
如果你愿意,我可以:
你现在是 学习 / 公司项目 / 服务器部署 哪种场景?