拉取jenkins镜像
docker pull jenkins/jenkins:lts
这是最新版的jenkins 镜像,其他的jenkins镜像仓库都被官方弃用了
创建jenkins 容器
docker run -d -p 8090:8080 -p 50000:50000 \
-v /opt/jenkins/:/var/jenkins_home \
-v /etc/localtime:/etc/localtime \
--restart=always \
--name jenkins \
jenkins/jenkins:lts
-d:后台模式启动
-p 端口映射 将本地的 8090 端口绑定到容器的 8080 端口上
基于 JNLP 的 Jenkins 代理通过 TCP 端口 50000 与 Jenkins master 进行通信
-v:(挂载卷)主机的目录 /opt/jenkins 映射到容器的 /var/jenkins_home。
–name:给新创建的容器命名,
–restart=always 当docker重启后 容器也会自动重启
docker ps -a
发现容器已经退出运行
我们查看日志
docker logs jenkins
发现是volume(j卷)的权限问题,当映射本地卷(/opt/jenkins)时,
/var/jenkins_home 的用户为root,jenkins的usr就没有访问权限,
我们用以下命令
docker run -ti --rm --entrypoint="/bin/bash" jenkins/jenkins:lts -c "whoami && id"
得知容器中jenkins user的uid为1000
此时 赋予 uid 1000 的文件操作权限
chown -R 1000:1000 /opt/jenkins
启动并查看日志
docker start jenkins &&
docker -t -f --tail 100 jenkins
jenkins正常启动,但是在日志中 有可能发现以下错误日志
说明,这个地址连接超时,下在插件会失败,有两个解决办法
首先在挂载的/opt/jenkins目录下找到hudson.model.UpdateCenter.xml
文件
vi hudson.model.UpdateCenter.xml
第一种:将https://updates.jenkins.io/update-center.json
的s去掉
第二种:换成国内的链接,
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
然后重启容器
docker restart jenkins
打开网址
http://xxx.xxx.32.xxx:8090
出现
至此安装成功!
解锁jenkins
jenkins启动后,使用docker logs jenkins
第一个红框即jenkins 初始密码 这个密码保存在第二个红框路径下
同时 挂载在/opt/jenkins目录下
输入密码后,可能提示
解决方法如下:
修改hudson.model.UpdateCenter.xml
,方法再上文中⬆
修改/opt/jenkins/updates/default.json
因jenkins在安装插件时需要检查网络,默认是访问google的
我们需要改成百度的www.baidu.com
该好后 重启jenkins 无日志异常
docker restart jenkins && docker logs -t -f --tail 100 jenkins
插件安装 选择新手入门
创建账户
实例配置