使用Docker過程中注意事項(xiàng)有哪些

這篇文章將為大家詳細(xì)講解有關(guān)使用Docker過程中注意事項(xiàng)有哪些,小編覺得挺實(shí)用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

成都創(chuàng)新互聯(lián)公司是專業(yè)的廣安網(wǎng)站建設(shè)公司,廣安接單;提供網(wǎng)站建設(shè)、網(wǎng)站制作,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行廣安網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!

redis的外部存儲掛載
  1. Persistence被開啟:無論是RDB還是AOF模式,都會需要在硬盤上進(jìn)行存儲。以RDB為例,會自動存在本地硬盤一個叫dump.rdb的文件。如果沒有掛載外部存儲,這些數(shù)據(jù)在docker銷毀后會消失。

  2. 主從設(shè)置下Replication對硬盤的需求:在Redis 2.8以前,Master與Slave的同步需要用存儲(硬盤)作為中間媒介(自2.8此同步可不經(jīng)過硬盤,但還屬于試驗(yàn)內(nèi)容)。在Docker環(huán)境下需要掛載Volume以保證這個步驟能正常運(yùn)行。

Redis不能跑在daemonize的模式

Docker的容器需要其中的主進(jìn)程一直在前端運(yùn)行,使用daemonize的模式會使得container在運(yùn)行后立即退出。幸運(yùn)的是在Redis的配置文件中daemonize模式默認(rèn)被關(guān)閉。如需運(yùn)行daemon模式,應(yīng)該在docker層面通過-d命令來進(jìn)行。

Redis的日志文件目錄應(yīng)置為空

Docker的容器所產(chǎn)生的日志會被系統(tǒng)自動接收和管理;同時Caicloud的集群管理平臺更會監(jiān)測和聚合系統(tǒng)中所有容器的日志。因此在配置文件中將logfile設(shè)為空會享受Docker和Caicloud的自動日志收集和管理。

Redis Snapshot的注意事項(xiàng)
  1. 在主從結(jié)構(gòu)下Snapshot應(yīng)開啟:如果在Redis的Master節(jié)點(diǎn)上配置了Persistenceoff (數(shù)據(jù)不會自動存儲到硬盤上),那么我們同時還應(yīng)該關(guān)掉Master節(jié)點(diǎn)的自動重啟功能。由于Caicloud的自動修復(fù)功能會重啟實(shí)效的容器(包括RedisMaster),我們應(yīng)開啟Snapshot功能。

  2. 對Persistence的需求:Redis會把Snapshot產(chǎn)生的rdb文件寫在指定的目錄中。默認(rèn)情況下這個對應(yīng)在Docker內(nèi)部的一個目錄,會隨著Docker的銷毀而銷毀。如果有Persistence的需求,應(yīng)該在生成Dockerfile和運(yùn)行Redis容器時同時掛載外部的存儲。

Redis的端口映射

Docker的容器在運(yùn)行時默認(rèn)會將容器內(nèi)的應(yīng)用端口映射成一個隨機(jī)的主機(jī)端口,但這樣會打破一些Redis服務(wù)。比如sentinel需要根據(jù)默認(rèn)端口規(guī)則 (26379) 來進(jìn)行自動發(fā)現(xiàn)。因此在Docker下運(yùn)行Redis一定要使用 –p port:port的格式來明確使用默認(rèn)的Redis端口規(guī)則。

Redis主從結(jié)構(gòu)中的Master節(jié)點(diǎn)的發(fā)現(xiàn)

在主從結(jié)構(gòu)中,從節(jié)點(diǎn)(slave)需要在配置文件中使用Master節(jié)點(diǎn)的IP,來實(shí)現(xiàn)與Master節(jié)點(diǎn)的互連。傳統(tǒng)架構(gòu)中這個IP可以預(yù)先通過靜態(tài)綁定。在Caicloud體系中,系統(tǒng)不需要靜態(tài)綁定具體的IP地址,而是可以通過DNS動態(tài)地發(fā)現(xiàn),并通過運(yùn)行Docker時的CMD命令來使用特定的腳本將Master IP動態(tài)添加到配置中。

多個Redis集群共存的情況

Caicloud下不會出現(xiàn)兩個Redis Cluster混為一起(https://www.oschina.net/news/67037/container-redis-accident)的情況,因?yàn)镃aicloud的獨(dú)特網(wǎng)絡(luò)特性(扁平化,每個機(jī)器有自己的網(wǎng)段)。如例子中提到的兩個Redis 集群混在一起需要如下條件:

  • 在某一個物理機(jī)上運(yùn)行來自兩個Redis 集群的server 實(shí)例(from cluster A and cluster B)

  • 在兩個Redis 集群中存在兩個server 實(shí)例(from cluster A and cluster B)碰巧有同樣的IP(在純Docker環(huán)境下有可能,因?yàn)槊總€主機(jī)上的Docker會隨機(jī)分配網(wǎng)段和IP)

在Caicloud環(huán)境下,每個Redis server都會被分配一個不同的IP,每兩個Redis server 的IP必定不相同(每個機(jī)器有自己的網(wǎng)段,所以不同機(jī)器上的Docker在給container分配地址的時候不會撞車)。

關(guān)于“使用Docker過程中注意事項(xiàng)有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

文章題目:使用Docker過程中注意事項(xiàng)有哪些
文章地址:http://muchs.cn/article42/pidihc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器靜態(tài)網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)小程序開發(fā)、用戶體驗(yàn)、網(wǎng)頁設(shè)計公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化