中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在Docker中搭建FastDFS文件系統

發布時間:2021-05-12 15:59:36 來源:億速云 閱讀:297 作者:Leah 欄目:開發技術

如何在Docker中搭建FastDFS文件系統?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

關于FastDFS

FastDFS 是以 C 語言開發的一項開源輕量級分布式文件系統,他對文件進行管理,主要功能有:文件存儲,文件同步,文件訪問(文件上傳/下載)等,特別適合以文件為載體的在線服務,如:圖片網站,視頻網站等。

1、搜索鏡像

執行命令:

docker search fastdfs

然后界面會搜出一大堆鏡像,選哪個呢?

如何在Docker中搭建FastDFS文件系統

老規矩,我們選擇start數最多的準沒錯,什么?start數不放心,怕被掛馬?ok,我們再去鏡像倉庫看一下:

如何在Docker中搭建FastDFS文件系統

補充: 其實看這些鏡像的描述也能看出一些區別來的,比如 ygqygq2/fastdfs-nginx,該鏡像是整合了 Nginx 的 fastdfs,那么新的問題來了,為什么要整合 Nginx?因為對于 fastdfs 來說,安裝后只能在本機訪問… 我上傳文件肯定是為了能夠訪問的呀,所以為了提供 web 訪問,那么就需要集成 Nginx 了,但是比如就是想自己單獨搞 Nginx… 那么肯定就不會選了嘛,season/fastdfs 鏡像相對純凈些,本文就是基于 season/fastdfs 鏡像的,后面也附帶配置 Nginx…

2、安裝鏡像

執行命令:

docker pull season/fastdfs:1.2

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

如何在Docker中搭建FastDFS文件系統3、

創建容器并掛載目錄

在創建容器之前我們先簡單說一下 FastDFS,FastDFS 系統有三個角色:

  • 跟蹤服務器(Tracker Server):跟蹤服務器,主要做調度工作,起到均衡的作用;負責管理所有的 storage server和 group,每個 storage 在啟動后會連接 Tracker,告知自己所屬 group 等信息,并保持周期性心跳。

  • 存儲服務器(Storage Server):存儲服務器,主要提供容量和備份服務;以 group 為單位,每個 group 內可以有多臺 storage server,數據互為備份。

  • 客戶端(Client):上傳下載數據的服務器,也就是我們自己的項目所部署在的服務器。

說到這就是想告訴小伙伴,接下來我們可能創建 跟蹤服務器容器、存儲服務器容器、客戶端容器 這三個容器…

3.1、創建出所需要的目錄

我們先把需要的一些目錄創建出來(數據目錄、數據存儲目錄等),執行命令:

mkdir -p /usr/local/server/fastdfs/tracker/data
mkdir -p /usr/local/server/fastdfs/storage/data
mkdir -p /usr/local/server/fastdfs/storage/path

3.2、創建tracker容器(跟蹤服務器容器)

執行命令:

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:讓容器在后臺運行

  • -p:指定容器內部使用的網絡端口映射到我們使用的主機上

  • --name:指定容器創建的名稱

  • -v:容器跟宿主機之間的掛載目錄

3.3、創建storage容器(存儲服務器容器)

執行命令(非最終執行命令,請修改為自己的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 storage

3.4、client測試

兩個容器創建完之后,但此時兩個容器其實并沒有關聯起來,我們進入tracker容器,通過client.conf測試一下:

docker exec -it tracker bash
cd /etc/fdfs/
ls
cat client.conf

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

如何在Docker中搭建FastDFS文件系統

嘗試執行一下連接:

fdfs_monitor client.conf

然后會得到如下內容:

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

也就是在沒有修改client配置之前,默認 tracker 是去連接 192.168.209.121 地址的,那么接下來就是需要去配置client配置文件了。

如何在Docker中搭建FastDFS文件系統

3.4、修改client.conf配置文件

通過 docker exec -it tracker bash 進入 tracker 容器后不能使用 vi vim 命令,所以干脆將 client.conf 配置文件復制出來,在宿主機修改完再粘貼回去。

執行命令:

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

我們通過 docker 指令將配置文件復制到 /usr/local/server/fastdfs/ 目錄。

如何在Docker中搭建FastDFS文件系統

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

如何在Docker中搭建FastDFS文件系統

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

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

至此,配置文件修改完了,接下來我們創建文件上傳測試一下。

4、文件上傳測試

執行命令,進入 tracker 容器中:

docker exec -it tracker bash

隨便創建一個 txt 文件:

echo "niceyoo" > niceyoo.txt

然后通過 fdfs_upload_file 命令將 niceyoo.txt 文件上傳至服務器:

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

如果此時報了如下錯誤:

如何在Docker中搭建FastDFS文件系統

那么就創建一下這個路徑,沒有的跳過:

mkdir -p /home/yuqing/fastdfs

創建目錄后重新嘗試提交:

如何在Docker中搭建FastDFS文件系統

我們復制出這個文件名來:group1/M00/00/00/CtM3BF84iz2AWE_JAAAACBfWGpM793.txt,這個名稱后面有用,將用作后面配置nginx時配置訪問文件路徑。

因為我們之前掛載了宿主機的目錄,我們去 cd /usr/local/server/fastdfs 看一下:

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

輸出內容如下:

如何在Docker中搭建FastDFS文件系統

5、配置Nginx

前面的補充已經提到了,默認上傳的文件是只能在本機訪問的,當然這樣肯定是不行的,所以我們需要配置一下Nginx 來幫我們實現 Web 訪問的效果。

創建nginx目錄:

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

將storage容器中的nginx配置文件復制出來:

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

修改nginx中的配置:

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

找到local節點,修改為:

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

相關截圖如下:

如何在Docker中搭建FastDFS文件系統

接下來就是創建nginx容器,并指向剛剛的配置文件了。

沒有安裝過nginx的小伙伴同樣可以執行如下指令,默認會幫你拉取鏡像然后安裝的。

注意:請修改ip地址后再執行

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

至此,我們查看一下目前創建以及啟動的容器:

如何在Docker中搭建FastDFS文件系統

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

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

執行結果:

如何在Docker中搭建FastDFS文件系統

至此,整個過程就搭建成功了,我們通過瀏覽器訪問一下:

如何在Docker中搭建FastDFS文件系統

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

府谷县| 车致| 永城市| 日土县| 吉林市| 措美县| 清水县| 万荣县| 临武县| 扶沟县| 蒙阴县| 章丘市| 澄迈县| 泽库县| 吉首市| 德昌县| 自治县| 清远市| 新巴尔虎左旗| 剑川县| 常德市| 固阳县| 两当县| 井研县| 资溪县| 南木林县| 当涂县| 白水县| 盱眙县| 雷山县| 乌拉特前旗| 区。| 介休市| 西平县| 乐昌市| 商丘市| 瑞昌市| 绥宁县| 临泉县| 昂仁县| 眉山市|