Docker中搭建FastDFS文件系統(tǒng)(多圖教程)

目錄關(guān)于FastDFS

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:主機(jī)域名、虛擬空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、臨河網(wǎng)站維護(hù)、網(wǎng)站推廣。

FastDFS 是以 C 語(yǔ)言開(kāi)發(fā)的一項(xiàng)開(kāi)源輕量級(jí)分布式文件系統(tǒng),他對(duì)文件進(jìn)行管理,主要功能有:文件存儲(chǔ),文件同步,文件訪問(wèn)(文件上傳/下載)等,特別適合以文件為載體的在線服務(wù),如:圖片網(wǎng)站,視頻網(wǎng)站等。

外話:FastDFS 是阿里余慶大神做的一個(gè)個(gè)人項(xiàng)目,從2008年研發(fā)FastDFS開(kāi)源至今,在一些互聯(lián)網(wǎng)創(chuàng)業(yè)公司中備受推崇,GitHub開(kāi)源地址:

本文基于,以下是正文內(nèi)容:

1、搜索鏡像

執(zhí)行命令:

docker search fastdfs

然后界面會(huì)搜出一大堆鏡像,選哪個(gè)呢?

老規(guī)矩,我們選擇start數(shù)最多的準(zhǔn)沒(méi)錯(cuò),什么?start數(shù)不放心,怕被掛馬?ok,我們?cè)偃タ匆幌拢?/p>補(bǔ)充: 其實(shí)看這些鏡像的描述也能看出一些區(qū)別來(lái)的,比如 ygqygq2/fastdfs-nginx,該鏡像是整合了 Nginx 的 fastdfs,那么新的問(wèn)題來(lái)了,為什么要整合 Nginx?因?yàn)閷?duì)于 fastdfs 來(lái)說(shuō),安裝后只能在本機(jī)訪問(wèn)… 我上傳文件肯定是為了能夠訪問(wèn)的呀,所以為了提供 web 訪問(wèn),那么就需要集成 Nginx 了,但是比如就是想自己?jiǎn)为?dú)搞 Nginx… 那么肯定就不會(huì)選了嘛,season/fastdfs 鏡像相對(duì)純凈些,本文就是基于 season/fastdfs 鏡像的,后面也附帶配置 Nginx…

2、安裝鏡像

執(zhí)行命令:

docker pull season/fastdfs:1.2

之所以選擇 1.2 版本,防止再次更新后本文不適合 latest 版本,執(zhí)行截圖如下:

3、

創(chuàng)建容器并掛載目錄

在創(chuàng)建容器之前我們先簡(jiǎn)單說(shuō)一下 FastDFS,F(xiàn)astDFS 系統(tǒng)有三個(gè)角色:

跟蹤服務(wù)器(Tracker Server):跟蹤服務(wù)器,主要做調(diào)度工作,起到均衡的作用;負(fù)責(zé)管理所有的 storage server和 group,每個(gè) storage 在啟動(dòng)后會(huì)連接 Tracker,告知自己所屬 group 等信息,并保持周期性心跳。 存儲(chǔ)服務(wù)器(Storage Server):存儲(chǔ)服務(wù)器,主要提供容量和備份服務(wù);以 group 為單位,每個(gè) group 內(nèi)可以有多臺(tái) storage server,數(shù)據(jù)互為備份。 客戶端(Client):上傳下載數(shù)據(jù)的服務(wù)器,也就是我們自己的項(xiàng)目所部署在的服務(wù)器。說(shuō)到這就是想告訴小伙伴,接下來(lái)我們可能創(chuàng)建 跟蹤服務(wù)器容器、存儲(chǔ)服務(wù)器容器、

客戶端容器 這三個(gè)容器…

3.1、創(chuàng)建出所需要的目錄

我們先把需要的一些目錄創(chuàng)建出來(lái)(數(shù)據(jù)目錄、數(shù)據(jù)存儲(chǔ)目錄等),執(zhí)行命令:

mkdir -p /usr/local/server/fastdfs/tracker/datamkdir -p /usr/local/server/fastdfs/storage/datamkdir -p /usr/local/server/fastdfs/storage/path3.2、創(chuàng)建tracker容器(跟蹤服務(wù)器容器)

執(zhí)行命令:

docker run -id --name tracker \-p 22122:22122 \--restart=always --net host \-v /usr/local/server/fastdfs/tracker/data:/fastdfs/tracker/data \season/fastdfs:1.2 tracker

再嘮叨一下上方命令:

-d:讓容器在后臺(tái)運(yùn)行 -p:指定容器內(nèi)部使用的網(wǎng)絡(luò)端口映射到我們使用的主機(jī)上 --name:指定容器創(chuàng)建的名稱 -v:容器跟宿主機(jī)之間的掛載目錄3.3、創(chuàng)建storage容器(存儲(chǔ)服務(wù)器容器)執(zhí)行命令(

非最終執(zhí)行命令,請(qǐng)修改為自己的ip地址):

docker run -id --name storage \--restart=always --net host \-v /usr/local/server/fastdfs/data/storage:/fastdfs/store_path \-e TRACKER_SERVER="10.211.55.4:22122" \season/fastdfs:1.2 storage3.4、client測(cè)試

兩個(gè)容器創(chuàng)建完之后,但此時(shí)兩個(gè)容器其實(shí)并沒(méi)有關(guān)聯(lián)起來(lái),我們進(jìn)入tracker容器,通過(guò)client.conf測(cè)試一下:

docker exec -it tracker bashcd /etc/fdfs/lscat client.conf

輸出的 client.conf 都是默認(rèn)配置,我們可以找到其中的 track_server 地址:

嘗試執(zhí)行一下連接:

fdfs_monitor client.conf

然后會(huì)得到如下內(nèi)容:

ERROR - file: ../common/connection_pool.c, line: 84, connect to 192.168.209.121:22122 fail, errno: 110, error info: Connection timed out

也就是在沒(méi)有修改client配置之前,默認(rèn) tracker 是去連接 192.168.209.121 地址的,那么接下來(lái)就是需要去配置client配置文件了。

3.4、修改client.conf配置文件

通過(guò) docker exec -it tracker bash 進(jìn)入 tracker 容器后不能使用 vi vim 命令,所以干脆將 client.conf 配置文件復(fù)制出來(lái),在宿主機(jī)修改完再粘貼回去。

執(zhí)行命令:

docker cp trakcer:/etc/fdfs/client.conf /usr/local/server/fastdfs/

我們通過(guò) docker 指令將配置文件復(fù)制到 /usr/local/server/fastdfs/ 目錄。

我們編輯這個(gè)文件,修改 tracker_url 地址(vi client.conf):

修改后保存,然后將修改后的文件替換回去。指令命令:

docker cp /usr/local/server/fastdfs/client.conf tracker:/etc/fdfs

至此,配置文件修改完了,接下來(lái)我們創(chuàng)建文件上傳測(cè)試一下。

4、文件上傳測(cè)試

執(zhí)行命令,進(jìn)入 tracker 容器中:

docker exec -it tracker bash

隨便創(chuàng)建一個(gè) txt 文件:

echo "niceyoo" > niceyoo.txt

然后通過(guò) fdfs_upload_file 命令將 niceyoo.txt 文件上傳至服務(wù)器:

fdfs_upload_file /etc/fdfs/client.conf niceyoo.txt

如果此時(shí)報(bào)了如下錯(cuò)誤:

那么就創(chuàng)建一下這個(gè)路徑,沒(méi)有的跳過(guò):

mkdir -p /home/yuqing/fastdfs

創(chuàng)建目錄后重新嘗試提交:

我們復(fù)制出這個(gè)文件名來(lái):group1/M00/00/00/CtM3BF84iz2AWE_JAAAACBfWGpM793.txt,這個(gè)名稱后面有用,將用作后面配置nginx時(shí)配置訪問(wèn)文件路徑。

因?yàn)槲覀冎皰燧d了宿主機(jī)的目錄,我們?nèi)?cd /usr/local/server/fastdfs 看一下:

cd /usr/local/server/fastdfs/data/storage/datals

輸出內(nèi)容如下:

5、配置Nginx

前面的補(bǔ)充已經(jīng)提到了,默認(rèn)上傳的文件是只能在本機(jī)訪問(wèn)的,當(dāng)然這樣肯定是不行的,所以我們需要配置一下Nginx 來(lái)幫我們實(shí)現(xiàn) Web 訪問(wèn)的效果。

創(chuàng)建nginx目錄:

mkdir -p /usr/local/server/fastdfs/nginx/

將storage容器中的nginx配置文件復(fù)制出來(lái):

docker cp storage:/etc/nginx/conf/nginx.conf /usr/local/server/fastdfs/nginx/

修改nginx中的配置:

vi /usr/local/server/fastdfs/nginx/nginx.conf

找到local節(jié)點(diǎn),修改為:

location / { root /fastdfs/store_path/data; ngx_fastdfs_module; }

相關(guān)截圖如下:

接下來(lái)就是創(chuàng)建nginx容器,并指向剛剛的配置文件了。

沒(méi)有安裝過(guò)nginx的小伙伴同樣可以執(zhí)行如下指令,默認(rèn)會(huì)幫你拉取鏡像然后安裝的。

注意:請(qǐng)修改ip地址后再執(zhí)行

docker run -id --name fastdfs_nginx \--restart=always \-v /usr/local/server/fastdfs/data/storage:/fastdfs/store_path \-v /usr/local/server/fastdfs/nginx/nginx.conf:/etc/nginx/conf/nginx.conf \-p 8888:80 \-e TRACKER_SERVER=10.211.55.4:22122 \season/fastdfs:1.2 nginx

至此,我們查看一下目前創(chuàng)建以及啟動(dòng)的容器:

我們測(cè)試一下之前上傳的文件 group1/M00/00/00/CtM3BF84iz2AWE_JAAAACBfWGpM793.txt,執(zhí)行如下命令:

curl -i http://127.0.0.1:8888/group1/M00/00/00/CtM3BF84iz2AWE_JAAAACBfWGpM793.txt

執(zhí)行結(jié)果:

至此,整個(gè)過(guò)程就搭建成功了,我們通過(guò)瀏覽器訪問(wèn)一下:

搭建完成怎么在項(xiàng)目當(dāng)中使用呢?

到此這篇關(guān)于Docker中搭建FastDFS文件系統(tǒng)(多圖教程)的文章就介紹到這了,更多相關(guān)Docker搭建FastDFS內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

名稱欄目:Docker中搭建FastDFS文件系統(tǒng)(多圖教程)
文章出自:http://muchs.cn/article36/chdsg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、軟件開(kāi)發(fā)、Google、品牌網(wǎng)站制作、網(wǎng)站排名、服務(wù)器托管

廣告

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

微信小程序開(kāi)發(fā)