docker及docker-compose安裝,docker安裝Jenkins全過程
linux安裝docker
1 卸載之前的
sudo yum remove docker-ce docker-ce-cli containerd.io
刪除資源
sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/containerd
2 安裝工具包
sudo yum install -y yum-utils
若是遇到網(wǎng)絡(luò)原因下載失敗的:
2.1 備份原有repo文件
sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
2.2 使用阿里云鏡像
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
3 設(shè)置鏡像倉庫
sudo yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4 安裝docker,選擇y繼續(xù)執(zhí)行
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
5 設(shè)置鏡像加速以及開機自啟動
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://noohub.ru",
"https://huecker.io",
"https://dockerhub.timeweb.cloud",
"https://0c105db5188026850f80c001def654a0.mirror.swr.myhuaweicloud.com",
"https://5tqw56kt.mirror.aliyuncs.com",
"https://docker.1panel.live",
"http://mirrors.ustc.edu.cn/",
"http://mirror.azure.cn/",
"https://hub.rat.dev/",
"https://docker.ckyl.me/",
"https://docker.chenby.cn",
"https://docker.hpcloud.cloud",
"https://docker.m.daocloud.io"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker/etc/docker/daemon.json內(nèi)容設(shè)置()
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://noohub.ru",
"https://huecker.io",
"https://dockerhub.timeweb.cloud",
"https://0c105db5188026850f80c001def654a0.mirror.swr.myhuaweicloud.com",
"https://5tqw56kt.mirror.aliyuncs.com",
"https://docker.1panel.live",
"http://mirrors.ustc.edu.cn/",
"http://mirror.azure.cn/",
"https://hub.rat.dev/",
"https://docker.ckyl.me/",
"https://docker.chenby.cn",
"https://docker.hpcloud.cloud",
"https://docker.m.daocloud.io"
]
}6 輸入命令,查看是否安裝成功 docker verison,出現(xiàn)下圖安裝成功

安裝docker-compose
方式1:通過pip安裝
安裝pip
-- 安裝pip yum -y install epel-release yum -y install python3-pip pip3 install --upgrade pip
安裝docker-compose
pip install docker-compose 或 pip3 install docker-compose
檢查是否安裝成功
docker-compose -v
卸載docker-compose
pip uninstall docker-compose 或 pip3 uninstall docker-compose
卸載前置包
pip3 uninstall pip yum -y remove python3-pip yum -y remove epel-release
測試是否卸載成功
docker-compose -v // -bash: /usr/local/bin/docker-compose: 沒有那個文件或目錄
方式2:命令安裝(github不穩(wěn)定,會連接失?。?/strong>
curl -L "https://github.com/docker/compose/releases/download/v2.27.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose
檢查是否安裝成功
docker-compose version
卸載docker-compose(可以使用命令先查找docker-compose路徑)
which docker-compose sudo rm /usr/local/bin/docker-compose
安裝Jenkins
創(chuàng)建Jenkins映射目錄
mkdir /var/jenkins_home
為目錄設(shè)置權(quán)限
chmod 777 /var/jenkins_home
拉取啟動Jenkins容器,并將docker映射到Jenkins容器中
docker run --privileged -d --name jenkins -p 18080:8080 -p 8888:8888 -p 50000:50000 \ -v /var/jenkins_home:/var/jenkins_home \ -v /var/run/docker.sock:/var/run/docker.sock \ -v $(which docker):/bin/docker jenkins/jenkins:latest-jdk17
- -d : 后臺運行
- -p 18080:8080 : 將容器的8080端口映射到宿主的18080端口
- -v /var/jenkins_home:/var/jenkins_home : 將容器中/var/jenkins_home的目錄掛載到宿主的/mnt/jenkins_home
- -v $(which docker):/bin/docker : 將宿主的docker目錄映射到容器內(nèi),以便在容器中能使用docker對應(yīng)的命令完成自動化部署
查看容器是否啟動成功
docker ps
出現(xiàn)下圖,則啟動成功

后續(xù)操作Jenkins時,可能會報權(quán)限不足的錯誤,可先進行權(quán)限設(shè)置來解決
chmod 777 /var/run/docker.sock
初始化Jenkins
cd /var/jenkins_home vi hudson.model.UpdateCenter.xml 修改地址為下面的地址 https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
文件內(nèi)容為:
<?xml version='1.1' encoding='UTF-8'?>
<sites>
<site>
<id>default</id>
<url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
</site>
</sites>重啟Jenkins
docker restart jenkins
瀏覽器輸入:ip:端口(18080),進入初始化頁面

可以通過docker logs jenkins 來查看密碼 ,或者根據(jù)上圖中的提示來查看密碼(該密碼保存好)

輸入密碼之后,進入下面頁面

選擇安裝推薦插件,等待安裝完成
在安裝過程中,在本地下載jdk包和maven包,上傳至服務(wù)器
cd /var/jenkins_home mkdir tools
將下載的jdk包和maven包進行解壓

進入解壓后的maven中,創(chuàng)建存放jar的存放目錄
mkdir repository
進入conf中,修改setting.xml文件夾,
添加指定jar的目錄

<localRepository>/var/jenkins_home/tools/apache-maven-3.9.9/repository</localRepository>
設(shè)置阿里云鏡像
<mirror> <!-- 鏡像的唯一標識符,可以自定義。 --> <id>nexus-aliyun</id> <!-- 指定該鏡像所對應(yīng)的原始倉庫。你可以使用通配符來匹配多個原始倉庫。例如,使用“*”表示匹配所有原始倉庫。。--> <mirrorOf>*</mirrorOf> <!-- 鏡像的名稱,可以自定義。 --> <name>Nexus aliyun</name> <!-- 鏡像的URL地址。你需要提供一個有效的鏡像地址。 --> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror>
為tools目錄及其里邊所有的目錄設(shè)置權(quán)限
chmod -R 777 /var/jenkins_home/tools/
等待Jenkins插件安裝完成。
完成后點擊使用admin賬戶繼續(xù)

點擊保存并完成
點擊插件管理


點擊Plugins安裝插件(maven 插件)


完成后,返回首頁
繼續(xù)點擊插件管理,選擇tools

選擇下方j(luò)dk安裝

選擇下方maven配置,完成后保存配置

然后重啟Jenkins
docker restart jenkins
構(gòu)建項目
1.給要部署的項目中添加打包配置,名稱為nacos.jar,名稱可根據(jù)自己的改
<build>
<finalName>nacos</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!--docker的maven插件,官網(wǎng): https://github.com/spotify/docker‐maven‐plugin-->
</plugins>
</build>同時,在自己的項目根目錄下新建一個Dockerfile文件

文件內(nèi)容為(這里是用的jdk 1.8):
FROM openjdk:8 ADD ./target/nacos.jar // ENTRYPOINT ["java", "-jar", "/nacos.jar"]
大概的意思是就是基于Dockerfile把項目打包成docker鏡像,并隨著容器啟動自動啟動項目
2.將代碼推送到遠程,這里使用的是gitee
3.進入Jenkins頁面,新建任務(wù),輸入名稱,選擇第一個選項

源碼管理中選擇git,同時輸入自己的git地址,添加選擇Jenkins

輸入自己的git賬號個密碼

選擇自己的git賬號

可以選擇定時構(gòu)建等,這里未選擇

點擊下方構(gòu)建步驟 ,選擇maven目標

選擇maven后,進行配置
clean install -Dmaven.test.skip=true

保存,點擊立即構(gòu)建。(查看控制臺輸出)

構(gòu)建成功后,在jenkin_home文件夾下會出現(xiàn)workspace文件夾


找到自己要部署的項目的jar,在target下,記錄此路徑

4.啟動項目容器
啟動項目的原理是通過Dockerfile構(gòu)建項目鏡像,并自動啟動容器。我們項目和jenkins在同一臺服務(wù)器,所以我們用shell腳本運行項目,原理既是通過dockerfile 打包鏡像,然后docker運行即可。
選擇自己的構(gòu)建任務(wù),點擊配置

點擊新增構(gòu)建步驟,選擇執(zhí)行shell,輸入下面的命令。
該命令中,cd后則是拉取代碼后target所在的目錄

cd /var/jenkins_home/workspace/kk-nacos/kk-support/kk-nacos/ docker stop kk-nacos || true docker rm kk-nacos || true docker rmi kk-nacos:1.0 || true docker build -t kk-nacos:1.0 . docker run -id -p 18848:18848 --name kk-nacos kk-nacos:1.0
點擊保存,點擊構(gòu)建此次任務(wù),查看控制臺
出現(xiàn)下面錯誤,可能是權(quán)限不足,執(zhí)行以下命令,重新構(gòu)建此次任務(wù)
chmod 777 /var/run/docker.sock

出現(xiàn)下圖,則構(gòu)建成功

然后,執(zhí)行docker ps,查看容器是否啟動成功

本次是nacos,可在瀏覽器出入nacos的ip,進入首頁看是否執(zhí)行成功.
整個流程:
- 1.程序員用IDEA將代碼推送到GIT遠程倉庫
- 2.Jenkins通過Git客戶端從Git倉庫中拉取最新的代碼
- 3.Jenkins執(zhí)行maven命令打包項目:clean install
- 4.Jenkins執(zhí)行腳本,cd到代碼目錄,執(zhí)行docker build,根據(jù)Dockerfile 構(gòu)建鏡像
- 5.執(zhí)行腳本 docker run 啟動容器
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
在Jenkins Docker容器中切換到root用戶并解決權(quán)限問題的完整指南
在使用Jenkins構(gòu)建和部署項目時,可能會遇到一些操作需要root用戶權(quán)限,比如安裝軟件包、創(chuàng)建軟鏈接等,在Jenkins的Docker容器中,默認是以非特權(quán)用戶運行的,這意味著你可能會遇到權(quán)限不足的問題,本文將教你如何在Jenkins容器中切換到root用戶,需要的朋友可以參考下2025-08-08
MySQL容器中docker-entrypoint-initdb.d目錄的使用
這篇文章主要介紹了MySQL容器中docker-entrypoint-initdb.d目錄的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05
docker部署微信小程序自動構(gòu)建發(fā)布和更新的詳細步驟
通過 Jenkins 和 Docker 部署微信小程序,并實現(xiàn)自動構(gòu)建、發(fā)布和版本更新,主要涉及到幾個步驟,下面給大家分享docker部署微信小程序自動構(gòu)建發(fā)布和更新的詳細步驟,感興趣的朋友一起看看吧2024-12-12
國內(nèi)服務(wù)器配置Docker國內(nèi)源(極限加速)
本文主要介紹了國內(nèi)服務(wù)器配置Docker國內(nèi)源,用戶可以在CentOS服務(wù)器上成功安裝并使用國內(nèi)鏡像加速器來提升Docker的使用,感興趣的可以了解一下2025-02-02

