基于Docker安装Jenkins

环境配置

Ubuntu22.04 64位

搭建流程

Linux安装Docker

Install Docker Engine On Ubuntu
1.尝试安装新版本之前卸载旧版本

sudo apt-get remove docker docker-engine docker.io containerd runc

2.更新apt包索引,安装依赖包支持通过HTTPS使用存储库

sudo apt-get update
sudo apt-get install \
    ca-certificates \
    curl \
    gnupg

3.添加Docker官方GPG密钥

sudo mkdir -m 0755 -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

4.设置存储库

echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

5.安装Docker引擎
更新apt库,安装Docker Engine、containerd和Docker Compose(这里安装最新版本)

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

6.验证Docker安装
运行hello-world镜像

sudo docker run hello-world

在这里插入图片描述

Docker安装Jenkins

Dockers Hub - Jenkins
Jenkins Docker Image Usage

docker run -d --name jenkins -p 8001:8080 -p 50000:50000 --restart=on-failure -v /data/jenkins_home:/var/jenkins_home jenkins/jenkins:lts-jdk11
命令说明
-d启动在后台
–name容器名称
-p端口映射(宿主机端口:容器内部端口)
–restart重启策略,on-failure容器因错误退出重启
-v显式卷设置(宿主机目录:容器内部目录),即使容器停止、启动或删除,Docker卷仍会保留其内容

启动容器遇到问题:

docker: Error response from daemon: driver failed programming external connectivity on endpoint jenkins (bc5fe4b81154796fa19c0a01a4005430e7852d5e2140b88e0df6f4582fe97f18):  (iptables failed: iptables --wait -t filter -A DOCKER ! -i docker0 -o docker0 -p tcp -d 192.168.0.2 --dport 50000 -j ACCEPT: iptables: No chain/target/match by that name.

解决方式:
参考问题

sudo iptables -t filter -F
sudo iptables -t filter -X
service docker restart

查看Jenkins启动情况

docker ps | grep jenkins

查看日志发现问题:

# docker logs -f --tail 1000 jenkins
touch: cannot touch '/var/jenkins_home/copy_reference_file.log': Permission denied
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?
touch: cannot touch '/var/jenkins_home/copy_reference_file.log': Permission denied
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?

解决方式:
主机文件夹挂载到/data/jenkins_home,可能会存在权限问题,这里/data/jenkins_home宿主机目录为root权限,这里可以确保容器内的 jenkins 用户(jenkins 用户 - uid 1000)具有权限,可以访问主机上的目录来解决。

chown 1000 /data/jenkins_home

访问初始化Jenkins

如果是云机器需要开启相应端口,本地机器注意防火墙配置

http://{机器ip}:{Jenkins应用宿主机端口}

在这里插入图片描述

首次登录密码路径(容器内部):/var/jenkins_home/secrets/initialAdminPassword
由于显式卷映射,在宿主机即可获取:

cat /data/jenkins_home/secrets/initialAdminPassword

在这里插入图片描述
选择安装推荐的插件(Install suggested plugins)即可,等待安装完成;
创建管理员用户;
实例配置可以先选择not now;
完成jenkins配置,访问首页;
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值