要在 Docker 中安装 Jenkins 并进行管理,可以按照以下步骤操作:
1. 安装 Docker
首先,确保你的系统已经安装了 Docker。如果尚未安装,可以使用以下命令进行安装:
在 CentOS 上安装 Docker
sudo yum install -y yum-utils
sudo yum-config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io
启动 Docker 并设置为开机启动:
sudo systemctl start docker
sudo systemctl enable docker
验证 Docker 是否成功安装:
docker –version
2. 拉取 Jenkins 镜像
使用 Docker 拉取 Jenkins 的官方镜像:
docker pull jenkins/jenkins:lts
3. 运行 Jenkins 容器
运行 Jenkins 容器,并映射端口和挂载卷:
docker run -d –name jenkins -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts
- -d:后台运行容器。
- –name jenkins:容器名称为 jenkins。
- -p 8080:8080:将容器的 8080 端口映射到主机的 8080 端口。
- -p 50000:50000:将容器的 50000 端口映射到主机的 50000 端口。
- -v jenkins_home:/var/jenkins_home:挂载卷,用于持久化 Jenkins 数据。
4. 查看 Jenkins 容器状态
查看 Jenkins 容器是否正在运行:
docker ps
5. 访问 Jenkins
在浏览器中访问 http://<your-ip>:8080,按照提示完成 Jenkins 的初始设置。通常,你需要输入初始管理员密码,可以通过以下命令获取:
docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
6. 管理 Jenkins 容器
以下是一些常用的 Docker 命令,用于管理 Jenkins 容器:
-
启动容器:
docker start jenkins
-
停止容器:
docker stop jenkins
-
重启容器:
docker restart jenkins
-
查看容器日志:
docker logs -f jenkins
-
进入容器内部:
docker exec -it jenkins bash
7. 配置 Jenkins
完成初始设置后,可以通过 Jenkins 的 Web 界面进行配置和管理。可以安装必要的插件,配置用户权限,以及创建和管理 Jenkins Job。
8. 使用 Docker Compose 管理 Jenkins
为了更方便地管理 Jenkins,可以使用 Docker Compose。以下是一个示例 docker-compose.yml 文件:
version: '3'
services:
jenkins:
image: jenkins/jenkins:lts
container_name: jenkins
ports:
– "8080:8080"
– "50000:50000"
volumes:
– jenkins_home:/var/jenkins_home
volumes:
jenkins_home:
启动 Jenkins 容器:
docker-compose up -d
知道如何安装,那如何卸载重装jenkins?
好的,继续进行 Jenkins 的重装和管理操作。以下是详细的步骤:
1. 停止并删除现有 Jenkins 容器
首先,确保 Jenkins 容器已经停止并删除:
docker stop jenkins
docker rm jenkins
2. 删除 Jenkins 数据卷(可选)
如果你希望彻底清除 Jenkins 的数据,可以删除 Jenkins 的数据卷:
docker volume rm jenkins_home
3. 拉取最新的 Jenkins 镜像
确保你使用的是最新的 Jenkins 镜像:
docker pull jenkins/jenkins:lts
4. 运行新的 Jenkins 容器
运行新的 Jenkins 容器,并映射端口和挂载卷:
docker run -d –name jenkins -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts
- -d:后台运行容器。
- –name jenkins:容器名称为 jenkins。
- -p 8080:8080:将容器的 8080 端口映射到主机的 8080 端口。
- -p 50000:50000:将容器的 50000 端口映射到主机的 50000 端口。
- -v jenkins_home:/var/jenkins_home:挂载卷,用于持久化 Jenkins 数据。
5. 查看 Jenkins 容器状态
确认 Jenkins 容器是否成功启动:
docker ps
你应该能看到 Jenkins 容器正在运行。
6. 访问 Jenkins
在浏览器中访问 http://<your-ip>:8080,按照提示完成 Jenkins 的初始设置。通常,你需要输入初始管理员密码,可以通过以下命令获取:
docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
通过nginx配置,实现域名访问Jenkins
- 如果不配置,会以http:xxx.com:8080 访问,不太友好! 要在 Nginx 中配置 Jenkins 为固定路径,可以通过反向代理的方式将特定路径请求转发到 Jenkins 服务。以下是详细的配置步骤:
1. 安装 Nginx
如果尚未安装 Nginx,可以使用以下命令进行安装:
sudo yum install -y epel-release
sudo yum install -y nginx
启动 Nginx 并设置为开机启动:
sudo systemctl start nginx
sudo systemctl enable nginx
2. 配置 Nginx 反向代理
编辑 Nginx 配置文件,通常位于 /etc/nginx/nginx.conf 或 /etc/nginx/conf.d/ 目录下的某个配置文件。例如,编辑 /etc/nginx/conf.d/jenkins.conf 文件:
- 如果不确定位置,可以通过find命令查询:
find / -iname nginx.conf
# 结果 甄别看下是哪个配置
# /usr/local/nginx/conf/nginx.conf
# /usr/local/nginx-1.27.2/conf/nginx.conf
我的是第一个,因为我采用安装包的方式安装的,不在/etc下
sudo vi /usr/local/nginx/conf/nginx.conf
添加以下内容:
- 如果以前有配置其他server代理,建议新加一个server配置,以免访问混淆错乱
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://localhost:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
请将 your-domain.com 替换为你的实际域名。之后直接访问即替换最初的http:xxx.com:8080的访问方式!
3. 测试 Nginx 配置
保存并退出编辑器,然后测试 Nginx 配置是否正确:
sudo nginx -t
如果没有错误,重新加载 Nginx:
nginx -s reload
4. 访问 Jenkins
在浏览器中访问 http://your-domain.com/jenkins/,即可通过 Nginx 访问 Jenkins 服务。
5. 重启Jenkins 服务
保存并退出编辑器,然后重启 Jenkins 服务:
docker restart jenkins #个人使用docker管理的,所以doker重启
当然,操作过程中会遇到一些问题:
问题1. 拉取 Jenkins 镜像时,默认的docker镜像源速度极慢,需要更换镜像源
要将 Docker 镜像源改为阿里云镜像源,可以通过配置 Docker 的镜像加速器来实现。以下是详细的步骤:
1. 注册阿里云账号并获取镜像加速器地址
首先,确保你有一个阿里云账号。登录阿里云控制台,找到容器镜像服务(ACR),然后获取镜像加速器地址。通常,阿里云会提供一个类似 https://<your-accelerator-id>.mirror.aliyuncs.com 的地址。
- 这里附一个对应地址:阿里云镜像加速服务地址
- 根据地址内的不同服务器,去运行对应命令添加更换镜像源即可!
- 以下是centos版本的命令,即拿即用:(使用此命令则忽略步骤2)
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://u2vy1ijp.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
2. 配置 Docker 使用阿里云镜像加速器
编辑 Docker 的配置文件 /etc/docker/daemon.json,添加镜像加速器设置:
sudo vi /etc/docker/daemon.json
在文件中添加以下内容:
{
"registry-mirrors": ["https://<your-accelerator-id>.mirror.aliyuncs.com"]
}
将 <your-accelerator-id> 替换为你从阿里云获取的实际加速器 ID。
3. 重启 Docker 服务
保存并退出编辑器,然后重启 Docker 服务以使配置生效:
sudo systemctl restart docker
4. 验证配置
重启 Docker 服务后,可以通过以下命令验证配置是否生效:
docker info
在输出信息中查找 Registry Mirrors,确保加速器地址正确配置。
5. 测试拉取镜像
尝试拉取一个镜像,验证加速器是否正常工作:
docker pull nginx:latest
如果配置正确,拉取速度应该会有所提升。
6. 常见问题排查
如果在配置过程中遇到问题,可以参考以下常见问题排查步骤:
- 检查网络连接:确保系统有稳定的网络连接。
- 检查配置文件:确保 daemon.json 文件格式正确,没有语法错误。
- 检查 Docker 服务状态:确保 Docker 服务正在运行。
- 检查防火墙设置:确保防火墙没有阻止 Docker 的网络请求。
通过以上步骤,你可以将 Docker 镜像源改为阿里云镜像源,从而提高镜像拉取速度和稳定性。希望这些信息对你有所帮助!
问题2. 在网页访问Jenkins时,不知道初始密码如何获取
- 当然直接使用也是可以的:
docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword

1. 这里直接在服务器使用,是拿不到的:
```bash
cd /var/jenkins_home/secrets/initialAdminPassword
请根据以下步骤拿取初始密码: 当 Jenkins 管理员密码不在 /var/jenkins_home/secrets/initialAdminPassword 文件中时,可以通过以下步骤来处理:
1. 检查 Jenkins 日志
首先,检查 Jenkins 的日志文件,以获取更多关于启动失败的信息:
sudo tail -f /var/log/jenkins/jenkins.log
如果日志文件不存在,可以手动启动 Jenkins 并查看控制台输出:
sudo systemctl start jenkins
sudo journalctl -u jenkins -f
2. 重置 Jenkins 管理员密码
如果 Jenkins 已经启动,但找不到管理员密码,可以通过以下步骤重置密码:
1. 进入 Jenkins 容器
使用以下命令进入 Jenkins 容器:
docker exec -it jenkins bash
2. 进入 Jenkins 用户目录
进入 Jenkins 用户目录:
cd /var/jenkins_home
3. 生成新密码
- 可先跳过该步骤,执行4,如果没有在回来执行步骤3 & 4 使用以下命令生成新密码:
printf $(openssl rand -base64 15)
记下生成的密码。
4. 直接在 /var/jenkins_home 目录中执行以下命令可以获取密码:
cd /var/jenkins_home/secrets/initialAdminPassword
总结
通过以上步骤,你可以使用 Docker 安装并管理 Jenkins。Docker 提供了灵活且可移植的方式来部署和管理 Jenkins 服务。希望这些信息对你有所帮助!
评论前必须登录!
注册