拉取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
插件安裝 選擇新手入門
創建賬戶
實例配置