濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > 使用Portainer部署Docker容器的項(xiàng)目實(shí)踐

使用Portainer部署Docker容器的項(xiàng)目實(shí)踐

熱門(mén)標(biāo)簽:10086外包用的什么外呼系統(tǒng) 怎么找到?jīng)]有地圖標(biāo)注的店 福州企業(yè)電銷(xiāo)機(jī)器人排名 宿城區(qū)電話機(jī)器人找哪家 河南防封號(hào)電銷(xiāo)機(jī)器人是什么 400電話辦理介紹信 麗江真人語(yǔ)音電話外呼系統(tǒng) 打400電話怎么辦理收費(fèi) 上海申請(qǐng)高400開(kāi)頭的電話

一、背景

最近在使用rancher2.5.5部署Redis主從復(fù)制的時(shí)候,發(fā)現(xiàn)rancher會(huì)產(chǎn)生很多iptables的規(guī)則,這些規(guī)則導(dǎo)致我們?cè)诓渴鹆藃ancher的機(jī)器上無(wú)法使用Redis的主從復(fù)制功能,因?yàn)槲覍?duì)rancher和k8s的了解也僅限于了解網(wǎng)絡(luò)架構(gòu)和使用,對(duì)底層并不深入,短期內(nèi)無(wú)法解決這個(gè)網(wǎng)絡(luò)沖突的問(wèn)題;

因此我將rancher管理docker的模式換成使用protainer的方式,這個(gè)portainer相對(duì)來(lái)說(shuō)更加輕量級(jí),在搭建過(guò)程中也使用了幾個(gè)小時(shí)學(xué)習(xí),現(xiàn)在講整個(gè)過(guò)程盡量復(fù)原給大家一些參考。

二、操作步驟

  • 安裝Portiner
  • 管理節(jié)點(diǎn)
  • 部署容器

三、安裝Portiner

安裝Portiner的方式有很多種,但我一向喜歡使用最簡(jiǎn)單的方法來(lái)完成所需要做的事情,因此這里我將使用docker的方式來(lái)搭建它。

3.1 docker部署

docker部署的方式非常簡(jiǎn)單,只需要執(zhí)行簡(jiǎn)單的運(yù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

命令中映射了物理機(jī)的8000端口和9000端口到容器中的8000端口以及9000端口,同時(shí)將宿主機(jī)的docker通信文件/var/run/docker.sock也映射到了容器中,另外為了持久化部署,還將目錄 /opt/docker/portainer-ce/data映射到了容器的/data目錄下,命令執(zhí)行完成之后,返回結(jié)果信息如下圖所示

在上圖中可以看到已經(jīng)成功運(yùn)行了一個(gè)docker容器,接下來(lái)我需要驗(yàn)證服務(wù)是否正常運(yùn)行,使用瀏覽器訪問(wèn)URLhttp://127.0.0.1:9000/地址,結(jié)果如下所示

在上圖中可以看到Portainer系統(tǒng)已經(jīng)能夠訪問(wèn), 說(shuō)明成功系統(tǒng)安裝成功了。

3.2 節(jié)點(diǎn)初始化

現(xiàn)在我需要設(shè)置管理員的賬號(hào)密碼,這里我簡(jiǎn)單填寫(xiě)密碼和確認(rèn)密碼之后,點(diǎn)擊Create user按鈕即可創(chuàng)建管理員賬戶。

管理員賬戶設(shè)置完成之后,需要進(jìn)行初始化,如下圖所示

在上圖中有三個(gè)選項(xiàng),我選擇使用Portainer管理本地docker程序,點(diǎn)擊Connect按鈕,即可完成初始化操作。

3.3 功能初探

完成初始化操作之后,就可以進(jìn)入Portainer的工作界面,如下圖所示

在上圖找那個(gè)可以看到Portainer系統(tǒng)中已經(jīng)有一個(gè)local的本地節(jié)點(diǎn),我們可以點(diǎn)擊它進(jìn)入節(jié)點(diǎn)的管理,如下圖所示

在上圖中可以看到Portainer系統(tǒng)列出了local節(jié)點(diǎn)的 Stack、容器信息、鏡像信息、磁盤(pán)信息、網(wǎng)絡(luò)信息等等,這里我隨意點(diǎn)擊Containers區(qū)塊,就可以看到容器列表,如下圖所示

在上圖中可以看到容器列表中存在兩個(gè)容器,以及容器的運(yùn)行狀態(tài),也可以對(duì)這些容器進(jìn)行控制。

四、管理節(jié)點(diǎn)

現(xiàn)在已經(jīng)對(duì)本地docker可以進(jìn)行控制,但是我并不滿足于此,我需要對(duì)其他機(jī)器也進(jìn)行控制。

4.1 開(kāi)始添加節(jié)點(diǎn)

在Portainer系統(tǒng)中,有一個(gè)endpoints的菜單,在這個(gè)菜單當(dāng)中可以添加多個(gè)節(jié)點(diǎn),如下圖所示

在上圖中可以看到,已經(jīng)有一個(gè)local的節(jié)點(diǎn),在列表上方有一個(gè)Add endpoint按鈕,點(diǎn)擊按鈕后就可以來(lái)到添加節(jié)點(diǎn)的詳情頁(yè),如下圖所示

在上圖中可以看到有5個(gè)選項(xiàng),這里我選擇最簡(jiǎn)單的一種方式,使用Docker API進(jìn)行控制。

4.2 開(kāi)放API控制

這種方法需要在節(jié)點(diǎn)的docker啟動(dòng)程序中添加參數(shù),因此我需要先登錄到節(jié)點(diǎn)服務(wù)器中去,ssh登登錄服務(wù)器的命令如下所示

ssh root@xxx.xxx.xxx.xxx

命令執(zhí)行完畢之后,返回如下圖所示

在上圖中可以看到已經(jīng)進(jìn)入節(jié)點(diǎn)所在的服務(wù)器,接著需要編輯docker啟動(dòng)的配置文件,命令如下所示

vim /usr/lib/systemd/system/docker.service

命令執(zhí)行之后,就可以在vim編輯界面修改配置,如下圖所示

將開(kāi)啟遠(yuǎn)程訪問(wèn)代碼加入到docker的啟動(dòng)命令行中,代碼如下所示

-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

將代碼復(fù)制到 /usr/bin/dockerd 程序后面,如下圖所示

保存配置文件之后,需要重啟docker服務(wù),重啟docker的命令如下所示

systemctl daemon-reload  && systemctl restart docker

重啟docker之后,一切正常的話就完成了

4.3 驗(yàn)證端口狀態(tài)

查看docker的配置信息,命令如下所示

docker info

命令執(zhí)行之后,返回的信息如下圖所示

在上圖中可以看到docker給了一個(gè)warning的警告提示,告知我開(kāi)啟遠(yuǎn)程訪問(wèn)會(huì)存在安全風(fēng)險(xiǎn),這里暫時(shí)不理會(huì)它,不過(guò)出現(xiàn)這個(gè)提示說(shuō)明確實(shí)是開(kāi)啟了遠(yuǎn)程訪問(wèn)的功能

另外可以查看通過(guò)開(kāi)放端口,來(lái)驗(yàn)證開(kāi)啟是否成功,命令如下所示

netstat -ntl

命令執(zhí)行完畢之后,會(huì)返回當(dāng)前主機(jī)的端口開(kāi)放情況,如下圖所示

在上圖中可以看到2375端口已經(jīng)被開(kāi)啟成功, 說(shuō)明節(jié)點(diǎn)本身開(kāi)啟docker是OK了;

但是Portainer通過(guò)ip訪問(wèn)此節(jié)點(diǎn)的時(shí)候,要考慮網(wǎng)絡(luò)中的防火墻是否會(huì)屏蔽此端口,這里可以使用nmap工具來(lái)探測(cè)節(jié)點(diǎn)的端口是否可以被訪問(wèn),現(xiàn)在我回到Portainer系統(tǒng)的命令終端,并使用nmap工具進(jìn)行探測(cè),命令如下所示

nmap -p 2375 xxx.xxx.xxx.xxx

命令執(zhí)行之后,會(huì)返回2375是否處于開(kāi)啟的情況,執(zhí)行結(jié)果如下圖所示

在上圖中可以看到節(jié)點(diǎn)的2375端口是開(kāi)啟的,并且可以進(jìn)行連接。

4.4 完成添加節(jié)點(diǎn)

接下來(lái)回到瀏覽器窗口,如下圖所示

在上圖所示的網(wǎng)頁(yè)中,將節(jié)點(diǎn)的IP地址和端口通過(guò)URL形式填寫(xiě)進(jìn)去,然后點(diǎn)擊Add endpodint按鈕,即可將節(jié)點(diǎn)增加進(jìn)去,添加成功會(huì)有相應(yīng)的提示,如下圖所示

在上圖中可以看到Portainer系統(tǒng)提示添加節(jié)點(diǎn)已經(jīng)成功,并且節(jié)點(diǎn)列表可以看到此節(jié)點(diǎn)了。

五、部署容器

添加節(jié)點(diǎn)完成之后,我準(zhǔn)備在遠(yuǎn)程節(jié)點(diǎn)中部署我的容器;

5.1 部署單個(gè)容器

回到Portainer主頁(yè),在主頁(yè)可以看到剛才添加的節(jié)點(diǎn)信息,如下圖所示

在上圖中選擇剛才添加的節(jié)點(diǎn),然后進(jìn)入容器菜單選項(xiàng),可以看到此節(jié)點(diǎn)的容器列表,,如下圖所示

在上圖所示頁(yè)面的列表上方有一個(gè)Add container按鈕,點(diǎn)擊此按鈕后就會(huì)調(diào)整到添加容器詳情頁(yè)

在上圖所示的頁(yè)面中,需要將docker鏡像地址填寫(xiě)進(jìn)去,這里我隨意選舉了一個(gè)nginx鏡像,并且將主機(jī)的8888端口映射到了容器的80端口,提交這些信息之后,Portainer系統(tǒng)會(huì)告知你容器運(yùn)行是否成功,如下圖所示

在上圖中可以看到容器已經(jīng)運(yùn)行成功,并且跳轉(zhuǎn)到了容器列表中,接下來(lái)我們可以訪問(wèn)此節(jié)點(diǎn)對(duì)應(yīng)的8888端口,來(lái)驗(yàn)證服務(wù)是否可用.

打開(kāi)瀏覽器,然后在地址欄中填入U(xiǎn)RLhttp://xxx.xxx.xxx.xxx:8888/,訪問(wèn)之后返回的結(jié)果如下圖所示

在上圖中可以看到nginx服務(wù)已經(jīng)成功運(yùn)行了;

5.2 部署 docker-compose

除了在容器列表頁(yè)部署容器之外,Portainer系統(tǒng)還支持使用docker-compose的方式進(jìn)行部署,在Portainer系統(tǒng)中叫做stacks,在菜單欄中選擇此項(xiàng),可以進(jìn)入docker-compose服務(wù)的列表,如下圖所示

在列表的上方有一個(gè)Add stack按鈕,點(diǎn)擊此按鈕,就可以添加docker-compose服務(wù),如下圖所示

在上圖所示的頁(yè)面中,會(huì)要求我填寫(xiě)docker-compose的信息,這里我準(zhǔn)備了一個(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ì)在對(duì)應(yīng)節(jié)點(diǎn)部署剛才的docker-compose服務(wù),如下圖所示

部署成功之后,可以在stacks列表中看到剛才部署的服務(wù),你還可以點(diǎn)擊列表中的服務(wù)名稱(chēng),進(jìn)入詳情頁(yè)進(jìn)行查看和修改,如下圖所示

在上圖中可以看到此服務(wù)具體運(yùn)行了什么容器,也可以終止或刪除該容器。

本文對(duì)Portainer也是一個(gè)初探,更加細(xì)節(jié)的還需要各位孜孜不倦的進(jìn)行探索。

到此這篇關(guān)于使用Portainer部署Docker容器的項(xiàng)目實(shí)踐的文章就介紹到這了,更多相關(guān)Portainer部署Docker容器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

到此這篇關(guān)于使用Portainer部署Docker容器的項(xiàng)目實(shí)踐的文章就介紹到這了,更多相關(guān)Portainer部署Docker容器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

標(biāo)簽:荊門(mén) 連云港 面試通知 朝陽(yáng) 運(yùn)城 遵義 隴南 雞西

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《使用Portainer部署Docker容器的項(xiàng)目實(shí)踐》,本文關(guān)鍵詞  使用,Portainer,部署,Docker,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《使用Portainer部署Docker容器的項(xiàng)目實(shí)踐》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于使用Portainer部署Docker容器的項(xiàng)目實(shí)踐的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    泽普县| 兴仁县| 白银市| 任丘市| 赣榆县| 巴塘县| 合阳县| 密云县| 祁阳县| 浏阳市| 南通市| 德兴市| 平顶山市| 商洛市| 娄底市| 甘孜县| 余江县| 乐亭县| 临洮县| 奉新县| 慈利县| 乌拉特后旗| 景泰县| 宽甸| 阳新县| 乌兰浩特市| 拜城县| 余干县| 阿拉善左旗| 叙永县| 湘潭县| 武威市| 乐昌市| 当雄县| 同心县| 龙胜| 秦皇岛市| 邛崃市| 吉木乃县| 贺兰县| 砀山县|