01.Portainer-容器界面化管理工具

01.Portainer-容器界面化管理工具

工欲善其事,必先利其器沛励。

前言

以前總喜歡自己搭建一些好玩的服務(wù)掏觉,如Jellyfin檩咱,NextCloud等等,剛開始原生搭建時每次都要環(huán)境版本折騰一些時間俗他,例如jdk,數(shù)據(jù)庫,多個服務(wù)各自依賴的版本又有不同要求佃牛,并且如果需要換服務(wù)器,環(huán)境遷移時真的很痛苦医舆。

后來慢慢的docker火起來了俘侠。在我嘗試接觸docker后,我之后所有的服務(wù)有鏡像的幾乎全部使用docker去搭建蔬将,常見熱門的一些好玩的項目幾乎也都有官方的docker鏡像爷速,甚至我現(xiàn)在開發(fā)完的項目都是打包鏡像后去進行部署,方便你我他霞怀。

剛開始習(xí)慣了docker搭建各種服務(wù)后惫东,對我來說雖然比以前原生環(huán)境搭建幸福到天上了,但是也有一些不爽的地方毙石,剛開始每次的服務(wù)容器啟動我都是使用原生命令廉沮,而我經(jīng)常因為需要更換路徑,ip以及其它等等原因調(diào)整命令徐矩,只能殺掉容器重新編寫命令滞时,當(dāng)然我發(fā)現(xiàn)這個問題后就采取了寫shell腳本的形式,將每個容器的啟動用腳本記錄下來滤灯,然后修改腳本即可漂洋。

后續(xù)我又接觸了docker-compose,這是docker官方的開源項目力喷, 負(fù)責(zé)實現(xiàn)對docker容器集群的快速編排刽漂,其實我只用到他可以將docker的啟動命令參數(shù)以腳本形式記錄下來的功能,并且可以將依賴的兩個容器編排到一起弟孟,例如私有g(shù)it倉庫和它用到的數(shù)據(jù)庫MySql等等贝咙,我剛開始就把它簡單理解為官方的命令腳本(當(dāng)然不是這樣的)。

現(xiàn)在拂募,基本的docker命令都熟悉了庭猩,但是有了更新的需求,有沒有啥工具點點拽拽就行了陈症,不要每次去服務(wù)器里面編輯腳本蔼水,查看日志。

答案是當(dāng)然有录肯,Portainer來了趴腋。

介紹

Portainer 是一款輕量級的應(yīng)用,它提供了圖形化界面,用于方便地管理Docker環(huán)境优炬,包括單機環(huán)境和集群環(huán)境颁井。

portainer分為社區(qū)版(Portainer Community Edition)和企業(yè)版(Portainer Business Edition),社區(qū)版完全免費開源蠢护,企業(yè)版不免費雅宾,而企業(yè)版也是由社區(qū)版本發(fā)展而來,包括一系列專門針對業(yè)務(wù)用戶需求的高級特性和功能(如 RBAC等等)葵硕。

社區(qū)版本的功能已經(jīng)非常強大了眉抬,滿足一般的集群管理完全沒有問題,而企業(yè)版我開始使用時可以申請5個節(jié)點懈凹,而我寫這篇文章時發(fā)現(xiàn)好像變?yōu)槿齻€節(jié)點了蜀变,如果只是為了容器管理需求,不是經(jīng)常愛折騰蘸劈,直接社區(qū)版,企業(yè)版免費節(jié)點也有到期時間尊沸,目前意思可以繼續(xù)續(xù)威沫,但是不知道會不會變,并且社區(qū)版升級企業(yè)版容易洼专,而企業(yè)版降級似乎有一些麻煩棒掠,我是社區(qū)版升級到了試用的企業(yè)版了,未嘗試降級過屁商。

安裝

在我們搭建好docker環(huán)境的前提下烟很,Portainer是非常方便。

1. 拉取鏡像

我們查看docker倉庫發(fā)現(xiàn)官方portainer鏡像有三個蜡镶,portainer雾袱,portainer-ce以及portainer-ee,分別是舊版portainer(已廢棄)官还,社區(qū)版與企業(yè)版芹橡。我們根據(jù)需要拉取portainer-ce以及portainer-ee即可,不要再拉取portainer望伦。如果使用企業(yè)版本林说,首先去申請免費授權(quán)

image.png

執(zhí)行以下命令屯伞,拉取鏡像:

docker pull portainer/portainer-ce   // 社區(qū)版
    
   or
    
docker pull portainer/portainer-ee   //企業(yè)版

啟動容器

因為我們才準(zhǔn)備搭建界面化容器管理服務(wù)腿箩,所以portainer的啟動命令肯定只能使用腳本,并且不建議使用docker-compose劣摇,直接shell腳本簡單易用珠移,服務(wù)器遷移后直接首先也執(zhí)行腳本啟動一個容器即可。

容器和鏡像的關(guān)系可以簡單理解鏡像是一個模版,我依托這個模版可以啟動多個實例即容器剑梳。這些容器可以相互獨立唆貌,但是他們的來源都是同一個鏡像。

容器啟動命令內(nèi)容如下:

docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always --net dllcnx --ip 172.20.0.10 --pull=always -v /var/run/docker.sock:/var/run/docker.sock -v /docker/portainer:/data portainer/portainer-ce:latest

需要注意的點:

  • -d:選項把這個容器的運行分離到后臺垢乙,這樣就能繼續(xù)使用終端锨咙。如果沒放這個選項,可以用 Crtl+C 來停止容器的運行追逮,或用 Ctrl+P 然后 Ctrl+Q 來像這選項一樣把運行放置去后臺酪刀。

  • -p 8000:8000:端口映射,選項捆綁宿主機的 8000 端口(前一個號碼)到容器的 8000 端口(后一個號碼)钮孵,使得訪問宿主機的 8000 端口就等同于訪問容器的 8000 端口骂倘。可以簡單理解一個容器就是一個小的服務(wù)器巴席,它內(nèi)部有完整的獨立體系历涝,它內(nèi)部開啟了8000端口,你外部是訪問不到的漾唉,只有將宿主機的端口通過命令映射了荧库,你才可以訪問宿主機端口傳到內(nèi)部去。所以有了一個問題要注意赵刑,內(nèi)部8000端口不能改分衫,因為portainer本身就用的8000,而你外部宿主機可以根據(jù)你的需求改動般此。

  • --name=portainer: 容器起一個名字

  • restart=always: 表示遇到意外停機蚪战,關(guān)閉等等原因,總是自動重啟铐懊,還有其他參數(shù)自己可以去學(xué)習(xí)

  • --net dllcnx --ip 172.20.0.10: 這個很多人用不到邀桑,相當(dāng)于我在容器里面建立了一個網(wǎng)絡(luò),這個網(wǎng)絡(luò)的名字叫dllcnx科乎,并且指定我這個容器ip是172.20.0.10(我的dllcnx網(wǎng)絡(luò)的網(wǎng)段里面的一個ip)概漱,我是因為多個服務(wù)為了統(tǒng)一管理,建立了網(wǎng)絡(luò)喜喂。

  • --pull=always:選項會檢測下載過的 latest 版鏡像是否有更新瓤摧,并重新下載

  • -v /var/run/docker.sock:/var/run/docker.sock: 類似與端口映射,這個是文件映射玉吁,將宿主機的docker命令映射進入容器里面照弥,同樣容器內(nèi)部位置不能改,外部看你安裝的具體情況进副,一般就是這個路徑这揣。

  • -v /docker/portainer:/data:同上悔常,也是文件映射,只是這個指向是個文件夾给赞,相當(dāng)于映射整個文件夾机打。目的是數(shù)據(jù)持久化,因為容器和宿主機是隔離的片迅,我們有時遷移服務(wù)器后残邀,重新啟動的容器肯定丟失了上個服務(wù)器的數(shù)據(jù),而這個文件夾下就是portainer的操作數(shù)據(jù)柑蛇,我們將其映射出來芥挣,后續(xù)遷移可以直接打包到新服務(wù)器,只要宿主機路徑繼續(xù)指向這些文件耻台,則能保證數(shù)據(jù)的持久空免。

  • portainer/portainer-ce:latest: 容器使用的鏡像,這個代表社區(qū)版盆耽,冒號后邊是版本蹋砚,指的默認(rèn)版本。

配置

啟動成功后摄杂,我們需要使用我們的ip加端口進行訪問坝咐,例如我們設(shè)置的宿主機默認(rèn)8000端口,則宿主機IP:8000即可匙姜。

  1. 首次進入需要創(chuàng)建管理員:


    image.png
  1. 進入后需要我們選擇連接哪個docker畅厢,我們當(dāng)然選擇本機環(huán)境:


    image.png

通過這個也可以看到冯痢,portainer其實也支持連接其他服務(wù)器的docker進行管理氮昧,這個也是之前我們看到企業(yè)版免費授權(quán)3個節(jié)點的作用,一個連接就是一個節(jié)點浦楣。

  1. 我們可以看到我們的環(huán)境了袖肥,點擊進入就能看我們的容器了


    image.png

左側(cè)菜單欄常用的就是

  • Dashboard監(jiān)控面板,
  • App Templates模版
  • stacks(其實就是docker-compose的管理和編寫)
  • Containers(啟動的容器)振劳,Images(下載的鏡像)
  • Networks(網(wǎng)絡(luò))
  • Volumes(文件卷椎组,直接我-v映射文件到宿主機,docker還提供這個模式)

面板說明

Dashboard

監(jiān)控面板历恐,可以看到我們的docker-compose腳本數(shù)寸癌,啟動的容器數(shù)量,鏡像數(shù)量等等弱贼。


image.png

App Templates

打開App Templates菜單可以看到很多創(chuàng)建容器的模板蒸苇,通過模板設(shè)置下即可輕松創(chuàng)建容器,我是沒咋使用過或者沒發(fā)現(xiàn)咋用吮旅;

Stacks

docker-compose編排界面溪烤,我喜歡以編排形式啟動容器。我們可以新建Stacks,也可對以往的進行管理檬嘀,點擊某個編排名稱可進入查看腳本內(nèi)容槽驶,以及正在依托這個腳本啟動的容器。

image.png
image.png

某個容器腳本


image.png

注意:docker run命令啟動的容器都可以轉(zhuǎn)換為docker-compose編排模式鸳兽,需要按照各自對應(yīng)的映射命令方式對應(yīng)寫正確即可掂铐,可以自行研究。

Containers

容器操作面板贸铜,我們可以新建容器堡纬,也看到當(dāng)前創(chuàng)建的容器,我們可以對容器進行運行蒿秦、暫停烤镐、刪除等操作;點擊某個容器進入也可以查看對應(yīng)的設(shè)置以及日志棍鳖,配置炮叶,交互等等。

image.png
image.png

新建容器界面:


image.png

Images

打開Images菜單渡处,我們可以查看所有的本地鏡像镜悉,對鏡像進行管理;


image.png

Networks

打開Networks菜單医瘫,可以查看Docker環(huán)境中的網(wǎng)絡(luò)情況侣肄;


image.png

使用

現(xiàn)在我以我需要啟動一個nginx服務(wù)為例,分別通過Containers和Stacks模式搭建:

原生啟動命令:

docker run -d -p 8888:80 nginx:latest

Containers模式

點擊左側(cè)菜單欄Containers->Add container->進入配置頁面:
我只配置名稱醇份,端口稼锅,其它命令此次都不配置,比如按理應(yīng)該把配置文件暴漏外部僚纷,大家根據(jù)需要矩距,我此次只為演示。

image.png

點擊Deploy the container進行啟動怖竭。

Stacks模式

點擊左側(cè)菜單欄Stacks->Add stack->進入配置頁面:


image.png

stacks按照docker-compose寫法寫即可锥债。

驗證

我瀏覽器端口12888的原因是家庭內(nèi)外網(wǎng)又加了一層映射,將局域網(wǎng)的8888映射到了外網(wǎng)的12888.

image.png

后記

  1. 本文不涉及Dockerdocker-compose環(huán)境安裝痊臭,請參考其它文章先行安裝docker及docker-compose

<center>
<img src="https://dllcnx.com:18889/images/dllcnx/gzh/search_01.jpg" style="width: 100px;">
</center>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末哮肚,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子广匙,更是在濱河造成了極大的恐慌允趟,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件艇潭,死亡現(xiàn)場離奇詭異拼窥,居然都是意外死亡戏蔑,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進店門鲁纠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來总棵,“玉大人,你說我怎么就攤上這事改含∏榱洌” “怎么了?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵捍壤,是天一觀的道長骤视。 經(jīng)常有香客問我,道長鹃觉,這世上最難降的妖魔是什么专酗? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮盗扇,結(jié)果婚禮上祷肯,老公的妹妹穿的比我還像新娘。我一直安慰自己疗隶,他們只是感情好佑笋,可當(dāng)我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著斑鼻,像睡著了一般蒋纬。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上坚弱,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天蜀备,我揣著相機與錄音,去河邊找鬼史汗。 笑死琼掠,一個胖子當(dāng)著我的面吹牛拒垃,可吹牛的內(nèi)容都是我干的停撞。 我是一名探鬼主播,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼悼瓮,長吁一口氣:“原來是場噩夢啊……” “哼戈毒!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起横堡,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤埋市,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后命贴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體道宅,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡食听,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了污茵。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片樱报。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖泞当,靈堂內(nèi)的尸體忽然破棺而出迹蛤,到底是詐尸還是另有隱情,我是刑警寧澤襟士,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布盗飒,位于F島的核電站,受9級特大地震影響陋桂,放射性物質(zhì)發(fā)生泄漏逆趣。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一嗜历、第九天 我趴在偏房一處隱蔽的房頂上張望汗贫。 院中可真熱鬧,春花似錦秸脱、人聲如沸落包。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽咐蝇。三九已至,卻和暖如春巷查,著一層夾襖步出監(jiān)牢的瞬間有序,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工岛请, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留旭寿,地道東北人。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓崇败,卻偏偏與公主長得像盅称,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子后室,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,976評論 2 355

推薦閱讀更多精彩內(nèi)容