在Debian系统上部署Jenkins容器前,需先安装Docker引擎(容器运行基础)和Java环境(Jenkins依赖)。
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
sudo systemctl start docker && sudo systemctl enable docker # 启动并设置开机自启
sudo docker run hello-world # 验证安装(输出"Hello from Docker!"即成功)
Jenkins需Java 8及以上版本,可通过以下命令安装OpenJDK:
sudo apt install -y openjdk-11-jdk
java -version # 验证安装(显示Java版本信息即成功)
从Docker Hub拉取Jenkins LTS(长期支持)版本镜像(稳定性更高,适合生产环境):
docker pull jenkins/jenkins:lts
使用docker run命令启动Jenkins容器,关键参数说明:
-d:后台运行容器;-p 8080:8080:将容器8080端口映射到宿主机,用于Web界面访问;-p 50000:50000:将容器50000端口映射到宿主机,用于Jenkins节点(Agent)通信;-v jenkins_home:/var/jenkins_home:将容器内Jenkins数据目录挂载到Docker卷,实现数据持久化(避免容器删除后数据丢失);--name jenkins:指定容器名称为jenkins(便于后续管理)。启动命令:
docker run -d -p 8080:8080 -p 50000:50000 --name jenkins -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts
首次访问Jenkins需输入管理员密码,通过以下命令从容器内获取:
docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
复制输出的密码,在浏览器访问http://<宿主机IP>:8080时输入。
进入Jenkins Web界面后,选择"Install suggested plugins"(安装推荐插件),自动安装常用插件(如Git、Pipeline、Docker等),简化后续配置。
插件安装完成后,设置管理员账号(用户名、密码、邮箱等),完成初始配置,进入Jenkins主界面。
若不想使用默认的jenkins_home卷,可创建宿主机目录并挂载(需提前创建目录并授权):
sudo mkdir -p /data/jenkins_home
sudo chmod 777 /data/jenkins_home # 授权(生产环境建议限制为特定用户)
docker run -d -p 8080:8080 -p 50000:50000 --name jenkins -v /data/jenkins_home:/var/jenkins_home jenkins/jenkins:lts
修改Jenkins镜像更新源,提升插件下载速度。进入/var/jenkins_home目录,编辑hudson.model.UpdateCenter.xml文件:
docker exec -it jenkins vim /var/jenkins_home/hudson.model.UpdateCenter.xml
将url修改为清华大学镜像源:
<url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
保存后重启容器生效:
docker restart jenkins
若需要管理多个容器(如Jenkins+数据库+Nexus),可使用docker-compose.yml文件定义配置,实现一键启动。
docker-compose.yml文件version: '3.8'
services:
jenkins:
image: jenkins/jenkins:lts
container_name: jenkins
ports:
- "8080:8080"
- "50000:50000"
volumes:
- jenkins_home:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock # 允许Jenkins控制宿主机Docker(可选,用于Docker-in-Docker)
volumes:
jenkins_home:
docker-compose up -d # 后台启动
docker-compose logs -f jenkins # 查看日志(可选)
若启动容器时报错"Permission denied",需调整宿主机目录权限(如/var/jenkins_home):
sudo chown -R 1000:1000 /var/jenkins_home # Jenkins容器内用户UID为1000
若宿主机8080端口已被占用,可修改映射端口(如-p 9090:8080),访问时使用http://<宿主机IP>:9090。
通过以上步骤,即可在Debian系统上完成Jenkins的容器化部署,享受容器带来的环境一致性、快速部署和易管理性优势。