fastdfs是一個開源的分布式文件系統,在實際使用中,通過源碼編譯安裝過程非常復雜,但是通過docker快速構建卻非常容易。下面介紹通過docker安裝fastdfs的方法。
docker鏡像的選擇也挺重要的,我最開始選擇season/fastdfs,發現有些麻煩,有的版本好像帶nginx比如1.2,有的版本又不帶nginx比如latest。我使用season/fastdfs鏡像安裝沒有成功過,但是使用delron/fastdfs鏡像就成功了,而且只需要啟動兩個容器,一個tracker,一個storage即可。storage容器中自帶了nginx,不需要額外啟動一個nginx容器。
先通過docker pull delron/fastdfs拉取最新的鏡像。
分別啟動tracker容器和storage容器。
[root@server ~]# docker run -d --name tracker -p 22122:22122 delron/fastdfs tracker 418de7394acd11a4b92b014501e9f7aaa240099249b95ea6aa49cd6bd31da18e [root@server ~]# docker run -d --name storage -p 8888:8888 -p 23000:23000 -e TRACKER_SERVER=192.168.197.128:22122 delron/fastdfs storage ac5ea9a959e2fbcdba433d8711e36df95f23761ff5cdcba6c5d3dea954550e90 [root@server ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ac5ea9a959e2 delron/fastdfs "/usr/bin/start1.sh …" 5 seconds ago Up 4 seconds 8080/tcp, 0.0.0.0:8888->8888/tcp, :::8888->8888/tcp, 22122/tcp, 0.0.0.0:23000->23000/tcp, :::23000->23000/tcp storage 418de7394acd delron/fastdfs "/usr/bin/start1.sh …" 8 minutes ago Up 8 minutes 8080/tcp, 8888/tcp, 23000/tcp, 0.0.0.0:22122->22122/tcp, :::22122->22122/tcp tracker [root@server ~]#
啟動tracker容器的時候,暴露22122端口給宿主機,啟動storage容器的時候暴露8888,23000端口給宿主機。
這兩個容器的啟動,跟我們平時啟動別的容器不一樣的是,在指定虛擬機鏡像之后,增加了一個命令tracker和storage,這兩個不同的命令會針對同樣的鏡像,啟動不同的服務。
上傳一張圖片到storage容器中:
docker cp vmware-0.png storage:/
進入容器測試:
檢查/etc/fdfs/client.conf配置
這里的tracker_server=192.168.197.128:22122配置,直接根據我們在創建storage容器的時候指定的環境變量TRACKER_SERVER自動配置了,而使用season/fastdfs鏡像這里就不行,需要手動修改配置。這一點很坑。
上傳我們之前復制到容器中的圖片vmware-0.png
上傳正常,返回圖片路徑:group1/M00/00/00/rBEAA2Kf_quAOgQdAAAYdM_Mb3k255.png
我們在瀏覽器中通過:http://192.168.197.128:8888/group1/M00/00/00/rBEAA2Kf_quAOgQdAAAYdM_Mb3k255.png 訪問,效果如下:
8888端口我們之前在啟動虛擬機的時候暴露給了宿主機,這個8888端口是nginx在監聽,我們可以看配置文件/usr/local/nginx/conf/nginx.conf:
通過delron/fastdfs鏡像,整體操作下來,最多需要三個命令:
- docker pull delron/fastdfs
- docker run -d –name tracker -p 22122:22122 delron/fastdfs tracker
- docker run -d –name storage -p 23000:23000 -p 8888:8888 -e TRACKER_SERVER=192.168.197.128:22122 delron/fastdfs storage
無需更改任何配置,啟動即成功。