Centos7 Docker搭建jenkins
Docker相关准备
安装
拉镜像
docker pull jenkins/jenkins:lts
地址:官方镜像地址
这步注意
国外的地址可能会拉不下来,这里解决方案就是,设置一个镜像加速,我使用的是阿里的镜像加速
参考地址:阿里镜像加速文档
启动容器
docker run -d -p 8080:8080 -p 50000:50000 -v /opt/.jenkins/:/var/jenkins_home/:rw -v /etc/localtime:/etc/localtime --name jenkins docker.io/jenkins/jenkins:lts
这里逐条解释下各参数的意义。
-d
后台运行镜像
-p 8080:8080
将镜像的8080端口映射到服务器的8080端口,前面是宿主机端口
-p 50000:50000
将镜像的50000端口映射到服务器的50000端口
-v /opt/docker/jenkins:/var/jenkins_home:rw
目录为jenkins工作目录,我们将硬盘上的一个目录挂载到这个位置,方便后续更新镜像后继续使用原来的工作目录。
-v /etc/localtime:/etc/localtime
让容器使用和服务器同样的时间设置。
--name jenkins
给容器起一个别名
启动后docker ps -a 查看情况
注意
-v 可能会有权限问题,原因是宿主机目录是root用户 容器是jenkins用户
docker logs 容器id 查看错误
解决方案:博客地址
查看运行目录用户
docker run -ti --rm --entrypoint="/bin/bash" docker.io/jenkins/jenkins:lts -c "whoami && id"
docker run -ti --rm -v $(pwd)/data:/var/jenkins_home --entrypoint="/bin/bash" docker.io/jenkins/jenkins:lts -c "ls -la /var/jenkins_home"
解决方案:博客地址
chcon -Rt svirt_sandbox_file_t /opt/.jenkins
访问页面
注意
- 服务器防火墙是否打开
systemctl status firewalld
可以选择关闭防火墙:systemctl stop firewalld
- 防火墙如果打开,8080,5000端口是否开放
firewall-cmd --add-port=8080/tcp --zone=public --permanent
初始化jenkins
- 打开浏览器 输入 宿主机ip:8080 我的是
192.168.31.112:8080
- 输入密钥
查看密钥- 查看宿主机对应位置,如果没有可能是 映射没成功
- 宿主机没有的话,可以进入容器
docker exec -it 容器id /bin/bash