Centos7 Docker搭建jenkins
Docker相關準備
安裝
yum install -y docker
啓動
systemctl start docker
建議開啓運行: systemctl enable 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