您好,登錄后才能下訂單哦!
本篇內容介紹了“怎么搭建docker+jenkins+node.js自動化部署環境”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
1、docker部分
1.1、docker簡介
docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發布到任何流行的 linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口
1.2、docker架構
簡單的說,docker就是一個輕量級的linux系統。docker 容器通過 docker 鏡像來創建。容器與鏡像的關系類似于面向對象編程中的對象與類。docker架構如圖所示:
1.3、docker虛擬機管理命令
1.4、安裝docker
更新軟件庫
yum update -y
安裝docker
yum install docker -y
1.5、啟動docker服務
啟動docker服務
service docker start
其它相關命令
service docker restart // 重啟docker服務 service docker stop // 停止docker服務
2、node部分
可以通過koa框架隨便寫一個hello-world項目,然后在項目的根目錄下新建一個dockerfile文件
dockerfile 是一個文本文件,其內包含了一條條的指令(instruction),每一條指令構建一層,因此每一條指令的內容,就是描述該層應當如何構建。
筆者自己的dockerfile文件配置信息如下,熟悉docker的人可以自行配置
# dockerfile # 使用node做為鏡像 from node # 在容器中創建該目錄 run mkdir -p /home/project # 設置容器的工作目錄為該目錄 workdir /home/project # 向外提供3000端口 expose 3000 # 容器創建完成后執行的命令 cmd npm install --registry=https://registry.npm.taobao.org && node ./start.js
將該項目發布到github上,為之后的jenkins部署做前提準備
3、jenkins部分
查詢jenkins鏡像
docker search jenkins
拉取最新的jenkins鏡像
docker pull jenkins:latest
啟動jenkins
sudo docker run -d -u 0 --privileged --name jenkins_node1 -p 49003:8080 -v /root/jenkins_node1:/var/jenkins_home jenkins:latest
命令解析:
-u 0
指的是傳入root賬號id,覆蓋容器中內置的賬號
-v /root/jenkins_node1:/var/jenkins_home
指的是 將docker容器內的目錄/var/jenkins_home映射到宿主機 /root/jenkins_node1目錄上
--name jenkins_node1
將容器命名為 jenkins_node1
-p 49003:8080
端口映射,將容器的8080端口映射到宿主機的49003端口
--privileged
賦予最高權限
整條命令的意思
運行一個鏡像為jenkins:latest的容器,命名為jenkins_node1,使用root賬號覆蓋容器中的賬號,賦予最高權限,將容器的 /var/jenkins_home映射到宿主機的 /root/jenkins_node1目錄下,映射容器中8080端口到宿主機49003端口
查看jenkins
執行完成后,等待幾十秒,等待jenkins容器啟動初始化。
可以查看宿主機 /root/jenkins_node1下是否多了很多文件
到瀏覽器中輸入 localhost:49003 查看jenkins是否啟動成功
看到如下界面說明啟動成功:
獲取密碼
cat /root/jenkins_node1/secrets/initialadminpassword
復制輸出的密碼,粘貼到頁面中,點擊continue會進入到下面這個頁面
點擊安裝
等待安裝完成,進入到創建管理員賬號界面
輸入賬號密碼信息后點擊保存(信息要填完),來到首頁
配置jenkins,進入系統管理頁面,管理插件
選擇 ssh插件,
直接安裝,等待安裝完成,回到首頁,
來到 系統管理 -> 系統配置
拖到最下publish over ssh這
選擇高級,輸入服務器ip,用戶名,密碼,然后點擊 test configuration
顯示 success 則說明配置沒問題。然后保存,回到首頁
新建一個項目
輸入項目名稱
選擇源碼管理,使用git管理,輸入github倉庫地址,添加github用戶
完成來到選擇構建環境,
執行的命令
sudo docker stop nodeapp || true \ && sudo docker rm nodeapp || true \ && cd /root/jenkins_node1/workspace/node \ && sudo docker build --rm --no-cache=true -t node - < dockerfile \ && sudo docker run -d --privileged=true --name nodeapp -p 3000:3000 -v /root/jenkins_node1/workspace/node:/home/project node
保存后,點擊立即構建
構建成功后,可以在宿主機的目錄/root/jenkins_node1/workspace/node下看到你的項目文件了
在瀏覽器輸入 docker服務器地址 localhost:3000 即可訪問到頁面信息
啟動失敗的,可以查看日志來確定一下失敗的原因
docker logs nodeapp
4、jenkins + github自動部署
如果想本地代碼提交push到github后,jenkins自動拉取最新代碼重新部署,請繼續看
服務器要外網能訪問,本地環境想測試的可以嘗試內網穿透 或者
在首頁點擊用戶
首頁 -> 用戶 -> root
點擊設置 -> show api token
復制api token 里面的值
返回到首頁 -> node -> 配置 -> 構建觸發器 粘貼到身份驗證令牌 中
登陸到你的github項目頁面 打開 setting -> webhooks -> add webhooks
添加 webhooks
修改jenkins的安全策略
jenkins首頁,選擇 系統管理-->configure global security(系統設置下面那個) 進行如下設置
至此,已完成 git push 后,jenkins 自動構建自動部署。
5、docker的常用命令
對docker比較感興趣的人可以了解一下,繼續學習
鏡像相關
查詢鏡像
docker search [name]
拉取鏡像
docker pull [name]
導入鏡像
docker load < /home/node.tar.gz
導出鏡像
docker save > /home/node.tar.gz
查詢所有鏡像
docker images
刪除鏡像
docker rmi [name]
修改鏡像名
docker tag docker.io/node node
容器相關
啟動
# 運行并進入交互模式 docker run -it --name myjava java bash # 在后臺運行 docker run -d --name myjava java
端口映射
docker run -it --name myjava -p 9000:8085 -p 9000:8086 java bash
目錄映射
docker run -it --name myjava -v /home/project:/soft --privileged docker.io/node bash
進入后臺運行的容器
docker exec -it name bash
自動重啟
docker run --restart=always -it --name myjava -p 9000:8085 -p 9000:8086 java bash
暫停容器
docker pause node
停止暫停容器
docker unpause node
停止容器
docker stop node
啟動容器
docker start -i node
查看容器
docker ps -a
docker網段相關
創建網段
docker network create net1
查看網段信息
docker network inspect net1
刪除網段信息
docker network rm net1
“怎么搭建docker+jenkins+node.js自動化部署環境”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。