本次環境的搭建參考了linux
https://blog.csdn.net/qq_43455410/article/details/84797814,docker
感謝博主。bash
主要流程以下:服務器
1. 下載fastdfs鏡像.net
- docker pull season/fastdfs
2. 建立tracker調度容器3d
- docker run -ti -d --name tracker -v ~/tracker_data:/fastdfs/tracker/data --net=host season/fastdfs tracker(啓動tracker服務器)注:啓動這個容器以前請確認22122這個端口沒有被佔用 ,命令:netstat -aon | gerp 22122
- 記得關閉防火牆 命令:systemctl stop firewalld 與 find / -name selinux 在輸入vi /etc/sysconfig/selinux 進入vi界面 按esc鍵 找到SELINUX=enforcing在按a鍵把enforcing修改爲disabled 在按esc退出編輯模式 而後:wq 保存退出 reboot 重啓
3.docker run -tid --name storage -v ~/storage_data:/fastdfs/storage/data -v ~/store_path:/fastdfs/store_path --net=host -e TRACKER_SERVER:服務器ip:22122 season/fastdfs storage(啓動Storage 服務器) 注:默認配置的ip地址不會生效須要本身從新配
配置命令:rest
- docker cp storage:/fdfs_conf/storage.conf ~/ 把storage.conf 拷貝到當前目錄
- vi storage.conf 進入vi界面找到tracker_server=服務器ip:22122 編輯ip地址 完成以後:wq保存退出
- docker cp ~/storage.conf storage:/fdfs_conf/ 把修改好的文件拷貝回以前的目錄下 在重啓一下storage就OK了(重啓命令:docker stop storage 關閉 docker start storage 開啓)
4.fastdht配置server
- docker run -ti -d --name fastdht --net=host manuku/fastdfs-fastdht
- docker start fastdht 啓動
- docker exec -it fastdht bash
- docker cp fastdht:/etc/fdht/fdht_servers.conf ~/
編輯fdht_servers.conf裏面的數據,以下:blog
- group_count = 1
- group0 = 服務器ip地址:11411
- docker cp ~/fdht_servers.conf fastdht:/etc/fdht
- docker restart fastdht
- lsof -i:11411 查看11411端口是否開始監聽
- docker cp ~/fdht_servers.conf storage:/fdfs_conf/ 複製fastdht配置文件到storage節點
修改storage.conf 一下幾個參數ip
- check_file_duplicate=1
- keep_alive=1
- #include /fdfs_conf/fdht_servers.conf fdht_server的配置文件,兩個## 更改成1個#
docker cp storage.conf storage:/fdfs_conf/ 複製存儲配置文件到storage容器
docker restart storage
5.安裝完成後,嘗試文件上傳:
- docker exec -it tracker bash
- cd fdfs_conf
- fdfs_upload_file storage.conf test.txt
屢次執行3 命令,返回以下:
屢次執行,會發現每次返回的文件名稱是不一樣的,進入到文件存儲目錄下查看結果:
能夠看出來,對於同一個文件的重複上送,第一次會存儲,其餘的保存會以軟鏈的方式指向第一次的存儲文件。
搭建完成了,此次沒有考慮高可用,等找時間再研究一下。