天天看點

FastDFS基于Docker安裝,免踩坑版

暫且不說docker在生産環境的性能如何,單就在學習新技術的過程中能夠快速建構環境這一項來說,就值得推薦你嘗試使用。本文帶大家基于docker來安裝fastdfs服務。

即便你對fastdfs的安裝不感興趣,也可以學習一下docker安裝軟體的過程(基本通用),是提高學習效率的法寶之一。

如果想補習一下fastdfs的原理,請參考《檔案管理系統fastdfs原理詳解》,有助于下面内容的了解和學習。

關于docker的安裝不同的作業系統有不同的安裝方法,這裡就不再贅述,預設你的電腦或伺服器上已經安裝好了docker,并已啟動。

我們來看一下docker庫裡面已經存在了哪些鏡像可供使用。執行以下指令(如果非管理者權限則可能需要使用sudo):

如果你是安裝其他的軟體,也可同樣通過docker search指令來進行查找。

這裡采用名字為delron/fastdfs的鏡像,當然你也可以選擇其他的鏡像,配置會有所不同,有些鏡像内沒有nginx相關配置。

那麼,我們就把它pull下來吧。

使用docker鏡像建構tracker容器,用于啟動跟蹤伺服器,起到排程的作用。

上面的啟動指令是在linux下,如果是mac或windows作業系統network=host(容器與主機享受相同的network namespace)會失效,此時需要指定對應的端口映射。本教程的docker主控端為mac。

預設tracker是監聽在22122端口的。

其中-v參數将本地的目錄與容器中的/var/fdfs目錄進行挂載。

這裡可以看到tracker服務已經啟動完成。

使用docker鏡像建構storage容器,用于啟動存儲伺服器,提供容量和備份服務。

在執行下面指令時特别需要提醒的時,對應的ip位址,需要修改為tracker服務的ip位址,由于是在同一台電腦上操作,這裡使用本機的内網位址即可,22122是tracker對應的端口。

示例,下面指令需要替換ip位址。

替換ip位址之後對應mac下的的具體執行操作:

其中8888為nginx對應的通路端口,23000是storage服務端口。

此時可檢視docker的服務情況:

經過上面的步驟,tracker和storage都啟動完成。我們可以進入對應的docker容器檢視一下預設的配置情況。

進入docker的指令為:

其中參數值“2bc9f8268eda”為我們上面看到的要進入的容器的container id。

先進入storage,檢視其對應配置檔案中關于http通路的配置,配置檔案在/etc/fdfs目錄下的storage.conf。在最後一行可以看到如下配置:

也就是說,這個docker鏡像中預設監聽的是8888端口,當然此配置是需要修改的。如果修改為其他端口,對應的nginx配置也需要修改。

那麼nginx配置在哪裡呢?也在目前容器當中。nginx配置檔案的根目錄為:

可以對其下的nginx.conf進行檢視和修改。先來看一下預設配置:

上面是關于server的配置,端口與storage的端口一一對應。如果需要修改時兩個同步修改。

通過上面的操作你會發現預設fastdfs會需要開啟8888、23000、22122端口,如果在linux作業系統下,注意防火牆對對應端口的開放。

經過上面的步驟已經完成了fastdfs的安裝和配置,下面我們來放一張圖檔驗證一下。

首先,将一張圖檔放在本機挂載目錄/users/zzs/develop/temp/storage下(上面指令中用到的目錄)。

然後,進入storage容器,進入/var/fdfs目錄,執行如下指令:

其中wenxin.jpg是前面存放在本機storage目錄下的圖檔的名稱。

相關執行指令及目錄:

此時,檔案已經上傳成功,會傳回在storage存儲檔案的路徑資訊。

通過url通路http://ip:8888/group1/m00/00/00/rbeaa18x7zwafapiaabrsfvlx6u142.jpg,即可檢視到圖檔。這裡ip替換成localhost或127.0.0.1接口。

展示效果如下:

FastDFS基于Docker安裝,免踩坑版