最近在使用rancher2.5.5部署Redis主從復制的時(shí)候,發(fā)現rancher會(huì )產(chǎn)生很多iptables的規則,這些規則導致我們在部署了rancher的機器上無(wú)法使用Redis的主從復制功能,因為我對rancher和k8s的了解也僅限于了解網(wǎng)絡(luò )架構和使用,對底層并不深入,短期內無(wú)法解決這個(gè)網(wǎng)絡(luò )沖突的問(wèn)題;
因此我將rancher管理docker的模式換成使用protainer的方式,這個(gè)portainer相對來(lái)說(shuō)更加輕量級,在搭建過(guò)程中也使用了幾個(gè)小時(shí)學(xué)習,現在講整個(gè)過(guò)程盡量復原給大家一些參考。
安裝Portiner的方式有很多種,但我一向喜歡使用最簡(jiǎn)單的方法來(lái)完成所需要做的事情,因此這里我將使用docker的方式來(lái)搭建它。
docker部署的方式非常簡(jiǎn)單,只需要執行簡(jiǎn)單的運行容器命令即可,命令如下所示。
docker run -d \ -p 9000:9000 \ -p 8000:8000 \ --restart always \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /opt/docker/portainer-ce/data:/data \ --name portainer-ce portainer/portainer-ce
命令中映射了物理機的8000端口和9000端口到容器中的8000端口以及9000端口,同時(shí)將宿主機的docker通信文件/var/run/docker.sock
也映射到了容器中,另外為了持久化部署,還將目錄 /opt/docker/portainer-ce/data
映射到了容器的/data
目錄下,命令執行完成之后,返回結果信息如下圖所示
在上圖中可以看到已經(jīng)成功運行了一個(gè)docker容器,接下來(lái)我需要驗證服務(wù)是否正常運行,使用瀏覽器訪(fǎng)問(wèn)URLhttp://127.0.0.1:9000/
地址,結果如下所示
在上圖中可以看到Portainer系統已經(jīng)能夠訪(fǎng)問(wèn), 說(shuō)明成功系統安裝成功了。
現在我需要設置管理員的賬號密碼,這里我簡(jiǎn)單填寫(xiě)密碼和確認密碼之后,點(diǎn)擊Create user
按鈕即可創(chuàng )建管理員賬戶(hù)。
管理員賬戶(hù)設置完成之后,需要進(jìn)行初始化,如下圖所示
在上圖中有三個(gè)選項,我選擇使用Portainer管理本地docker程序,點(diǎn)擊Connect
按鈕,即可完成初始化操作。
完成初始化操作之后,就可以進(jìn)入Portainer的工作界面,如下圖所示
在上圖找那個(gè)可以看到Portainer系統中已經(jīng)有一個(gè)local
的本地節點(diǎn),我們可以點(diǎn)擊它進(jìn)入節點(diǎn)的管理,如下圖所示
在上圖中可以看到Portainer系統列出了local
節點(diǎn)的 Stack、容器信息、鏡像信息、磁盤(pán)信息、網(wǎng)絡(luò )信息等等,這里我隨意點(diǎn)擊Containers
區塊,就可以看到容器列表,如下圖所示
在上圖中可以看到容器列表中存在兩個(gè)容器,以及容器的運行狀態(tài),也可以對這些容器進(jìn)行控制。
現在已經(jīng)對本地docker可以進(jìn)行控制,但是我并不滿(mǎn)足于此,我需要對其他機器也進(jìn)行控制。
在Portainer系統中,有一個(gè)endpoints
的菜單,在這個(gè)菜單當中可以添加多個(gè)節點(diǎn),如下圖所示
在上圖中可以看到,已經(jīng)有一個(gè)local
的節點(diǎn),在列表上方有一個(gè)Add endpoint
按鈕,點(diǎn)擊按鈕后就可以來(lái)到添加節點(diǎn)的詳情頁(yè),如下圖所示
在上圖中可以看到有5個(gè)選項,這里我選擇最簡(jiǎn)單的一種方式,使用Docker API
進(jìn)行控制。
這種方法需要在節點(diǎn)的docker啟動(dòng)程序中添加參數,因此我需要先登錄到節點(diǎn)服務(wù)器中去,ssh登登錄服務(wù)器的命令如下所示
ssh root@xxx.xxx.xxx.xxx
命令執行完畢之后,返回如下圖所示
在上圖中可以看到已經(jīng)進(jìn)入節點(diǎn)所在的服務(wù)器,接著(zhù)需要編輯docker啟動(dòng)的配置文件,命令如下所示
vim /usr/lib/systemd/system/docker.service
命令執行之后,就可以在vim編輯界面修改配置,如下圖所示
將開(kāi)啟遠程訪(fǎng)問(wèn)代碼加入到docker的啟動(dòng)命令行中,代碼如下所示
-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
將代碼復制到 /usr/bin/dockerd
程序后面,如下圖所示
保存配置文件之后,需要重啟docker服務(wù),重啟docker的命令如下所示
systemctl daemon-reload && systemctl restart docker
重啟docker之后,一切正常的話(huà)就完成了
查看docker的配置信息,命令如下所示
docker info
命令執行之后,返回的信息如下圖所示
在上圖中可以看到docker給了一個(gè)warning的警告提示,告知我開(kāi)啟遠程訪(fǎng)問(wèn)會(huì )存在安全風(fēng)險,這里暫時(shí)不理會(huì )它,不過(guò)出現這個(gè)提示說(shuō)明確實(shí)是開(kāi)啟了遠程訪(fǎng)問(wèn)的功能
另外可以查看通過(guò)開(kāi)放端口,來(lái)驗證開(kāi)啟是否成功,命令如下所示
netstat -ntl
命令執行完畢之后,會(huì )返回當前主機的端口開(kāi)放情況,如下圖所示
在上圖中可以看到2375
端口已經(jīng)被開(kāi)啟成功, 說(shuō)明節點(diǎn)本身開(kāi)啟docker是OK了;
但是Portainer通過(guò)ip訪(fǎng)問(wèn)此節點(diǎn)的時(shí)候,要考慮網(wǎng)絡(luò )中的防火墻是否會(huì )屏蔽此端口,這里可以使用nmap
工具來(lái)探測節點(diǎn)的端口是否可以被訪(fǎng)問(wèn),現在我回到Portainer系統的命令終端,并使用nmap工具進(jìn)行探測,命令如下所示
nmap -p 2375 xxx.xxx.xxx.xxx
命令執行之后,會(huì )返回2375是否處于開(kāi)啟的情況,執行結果如下圖所示
在上圖中可以看到節點(diǎn)的2375
端口是開(kāi)啟的,并且可以進(jìn)行連接。
接下來(lái)回到瀏覽器窗口,如下圖所示
在上圖所示的網(wǎng)頁(yè)中,將節點(diǎn)的IP地址和端口通過(guò)URL形式填寫(xiě)進(jìn)去,然后點(diǎn)擊Add endpodint
按鈕,即可將節點(diǎn)增加進(jìn)去,添加成功會(huì )有相應的提示,如下圖所示
在上圖中可以看到Portainer系統提示添加節點(diǎn)已經(jīng)成功,并且節點(diǎn)列表可以看到此節點(diǎn)了。
添加節點(diǎn)完成之后,我準備在遠程節點(diǎn)中部署我的容器;
回到Portainer主頁(yè),在主頁(yè)可以看到剛才添加的節點(diǎn)信息,如下圖所示
在上圖中選擇剛才添加的節點(diǎn),然后進(jìn)入容器菜單選項,可以看到此節點(diǎn)的容器列表,,如下圖所示
在上圖所示頁(yè)面的列表上方有一個(gè)Add container
按鈕,點(diǎn)擊此按鈕后就會(huì )調整到添加容器詳情頁(yè)
在上圖所示的頁(yè)面中,需要將docker鏡像地址填寫(xiě)進(jìn)去,這里我隨意選舉了一個(gè)nginx鏡像,并且將主機的8888端口映射到了容器的80端口,提交這些信息之后,Portainer系統會(huì )告知你容器運行是否成功,如下圖所示
在上圖中可以看到容器已經(jīng)運行成功,并且跳轉到了容器列表中,接下來(lái)我們可以訪(fǎng)問(wèn)此節點(diǎn)對應的8888端口,來(lái)驗證服務(wù)是否可用.
打開(kāi)瀏覽器,然后在地址欄中填入URLhttp://xxx.xxx.xxx.xxx:8888/
,訪(fǎng)問(wèn)之后返回的結果如下圖所示
在上圖中可以看到nginx
服務(wù)已經(jīng)成功運行了;
除了在容器列表頁(yè)部署容器之外,Portainer系統還支持使用docker-compose的方式進(jìn)行部署,在Portainer系統中叫做stacks
,在菜單欄中選擇此項,可以進(jìn)入docker-compose服務(wù)的列表,如下圖所示
在列表的上方有一個(gè)Add stack
按鈕,點(diǎn)擊此按鈕,就可以添加docker-compose
服務(wù),如下圖所示
在上圖所示的頁(yè)面中,會(huì )要求我填寫(xiě)docker-compose的信息,這里我準備了一個(gè)Redis服務(wù)的docker-compose
的配置,配置代碼如下所示
version: '3.5' services: redis: image: "redis:latest" container_name: redis_test command: redis-server ports: - "16379:16379"
降配置填到頁(yè)面的后,進(jìn)行提交Portainer就會(huì )在對應節點(diǎn)部署剛才的docker-compose
服務(wù),如下圖所示
部署成功之后,可以在stacks列表中看到剛才部署的服務(wù),你還可以點(diǎn)擊列表中的服務(wù)名稱(chēng),進(jìn)入詳情頁(yè)進(jìn)行查看和修改,如下圖所示
在上圖中可以看到此服務(wù)具體運行了什么容器,也可以終止或刪除該容器。
本文對Portainer也是一個(gè)初探,更加細節的還需要各位孜孜不倦的進(jìn)行探索。
到此這篇關(guān)于使用Portainer部署Docker容器的項目實(shí)踐的文章就介紹到這了,更多相關(guān)Portainer部署Docker容器內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
到此這篇關(guān)于使用Portainer部署Docker容器的項目實(shí)踐的文章就介紹到這了,更多相關(guān)Portainer部署Docker容器內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站