Linux docker 安裝FastDFS
docker search fastdfs NAMEDESCRIPTIONSTARSOFFICIALAUTOMATED season/fastdfsFastDFS47 luhuiguo/fastdfsFastDFS is an open source high performance d…19[OK] morunchang/fastdfsA FastDFS image12 ……
採用使用最多的season/fastdfs映象。
下載映象
docker image pull season/fastdfs
目錄配置
在宿主機中新建目錄用,於存放fastdfs配置檔案和資料。名稱根據自己需求,如下只是樣例,fastdfs在一臺伺服器支援多個store_path,每個store_path指向一個儲存路徑。
mkdir /usr/local/fastdfs/etc/ mkdir /usr/local/fastdfs/data/storage_data mkdir /usr/local/fastdfs/data/store_path mkdir /usr/local/fastdfs/data/tracker_data
- etc:配置檔案地址
- storage_data:儲存資料地址
- tracker_data:儲存資料地址
- store_path:擴容
獲取配置檔案
啟動一個fastdfs的docker容器,檢視容器id,從容器中下載配置檔案並且下載到上面建立的 /usr/local/fastdfs/etc/ 目錄中.
docker run -ti --name fdfs_sh --net=host season/fastdfs sh docker ps -a docker cp -a 07e7af1fdf74:/fdfs_conf/./usr/local/fastdfs/etc
修改配置檔案
主要修改的是檔案儲存目錄和跟蹤伺服器地址,tracker_server 根據自己機器的地址進行配置。
tracker.conf主要修改如下:
base_path=/fastdfs/storage store_path0=/fastdfs/storage/ tracker_server=192.168.1.214:22122
storage.conf主要修改如下:
tracker_server=192.168.1.214:22122
client.conf修改如下:
tracker_server=192.168.1.214:22122
以上檔案,如果需要修改預設埠則也在對應配置檔案中進行修改。
http.tracker_server_port=8880
啟動容器tracker
啟動容器指令碼,先啟動一個tracker然後再啟動一個storage,-v 後面跟的目錄對映,TRACKER_SERVER地址根據自己機器的地址進行配置,—privileged=true主要是解決目錄許可權。
啟動tracker
docker run -tid --nametracker -v /usr/local/fastdfs/data/tracker_data/data:/fastdfs/tracker/data -v /usr/local/fastdfs/etc:/fdfs_conf --privileged=true --net=hostseason/fastdfs tracker
啟動storage
docker run -tid --name storage -v /usr/local/fastdfs/data/storage_data/data:/fastdfs/storage/data -v /usr/local/fastdfs/data/store_path:/fastdfs/store_path -v /usr/local/fastdfs/etc:/fdfs_conf --privileged=true --net=host -e TRACKER_SERVER:172.17.90.65:22122 season/fastdfs storage
可以使用docker logs容器id檢視日誌。
啟動測試
啟動一個容器,在容器中進行測試,啟動容器會用到client.conf。
docker run -ti --name fdfs_sh -v /usr/local/fastdfs/etc:/fdfs_conf --privileged=true --net=host season/fastdfs sh
執行完指令碼會進入容器內,切換到/usr/bin目錄下。
cd /usr/bin fdfs_test/fdfs_conf/client.conf upload /fdfs_conf/storage.conf
上傳完成後會獲得檔案相關資訊:
example file url: http://192.168.1.214/group1/M00/00/00/wKgB1lozOU-ASzg7AAAgC81RIQ441_big.conf
但此時並沒辦法在宿主機上進行檢視,還需要配置Nginx。
安裝Nginx
下載相關元件
如果未安裝git可通過命令安裝:
yum install git
下載相關軟體。
git clone https://github.com/happyfish100/libfastcommon.git git clone https://github.com/happyfish100/fastdfs-nginx-module.git git clone https://github.com/happyfish100/fastdfs.git
安裝libfastcommon
cd libfastcommon/ ./make.sh ./make.sh install
安裝fastdfs
Nginx後續要使用到此環境的配置,因此也需安裝。
./make.sh ./make.sh install
安裝Nginx依賴
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel wget http://nginx.org/download/nginx-1.15.9.tar.gz tar -zxvf nginx-1.15.9.tar.gz cd nginx-1.15.9 ## 此處如果需要安裝其他外掛,比如ssl外掛,可類似新增。 ./configure --add-module=../fastdfs-nginx-module/src/ --with-http_ssl_module make make install
安裝成功,則/usr/local/目錄下就可以看到nginx。
異常情況
此過程如果出現異常:
/usr/local/include/fastdfs/fdfs_define.h:15:27: 致命錯誤:common_define.h:沒有那個檔案或目錄
則編輯fastdfs-nginx-module/src/config檔案,將以下引數的key對應的值修改為:
ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/" CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
然後再重新執行configure,make等操作。
相關配置
拷貝/usr/local/fastdfs/etc/目錄下的內容到/etc/fdfs目錄下。將fastdfs-nginx-module/src 目錄下的mod_fastdfs.conf也複製到/etc/fdfs。
並修改以上配置檔案中涉及到的以下引數與實際目錄一致。
base_path=/usr/local/fastdfs/data/tore_path store_path0=/usr/local/fastdfs/data/tore_path tracker_server=192.168.6.78:22122 http.server_port=8880 //需要與nginx監聽的埠一致
修改 /etc/fdfs/mod_fastdfs.conf:
url_have_group_name = true //請求路徑是否攜帶組資訊
配置Nginx
vim /usr/local/nginx/conf/nginx.conf
server { listen8888; server_namelocalhost; #charset koi8-r; #access_loglogs/host.access.logmain; location ~/group([0-9])/M00 { # root /var/fdfs/storage_path; ngx_fastdfs_module; }
當然,對外的埠也可以設定為其他,比如80。
使用配置
connect_timeout = 60 #網路超時時間 network_timeout = 60 #字符集 charset = UTF-8 #跟蹤伺服器的埠(預設80埠,可以在storage中配置) http.tracker_http_port = 8880 http.anti_steal_token = no http.secret_key = 123456 #跟蹤伺服器地址 。跟蹤伺服器主要是起到負載均衡的作用 tracker_server = 47.100.206.217:22122
跟蹤伺服器的埠,預設80埠,可以在storage中配置中的fdsf.conf中配置。
docker內部命令修改
如果需要修改docker內部的配置檔案,需先安裝vim命令。
apt-get update apt-get install -y vim
如果執行過程中無法連線,則修改國內映象源:
mv /etc/apt/sources.list /etc/apt/sources.list.bak echo "deb http://mirrors.163.com/debian/ jessie main non-free contrib" >> /etc/apt/sources.list echo "deb-src http://mirrors.163.com/debian/ jessie main non-free contrib" >>/etc/apt/sources.list
然後再執行更新和安裝命令即可。
開放防火牆
在配置檔案中配置涉及到的埠,如果需外網訪問則需開放對應的防火牆。