首先需要建立兩個檔案夾用于存放資料
mkdir -p /usr/local/docker/fdfs/storage
mkdir -p /usr/local/docker/fdfs/tracker
1. 擷取docker鏡像
[[email protected] local]# docker pull delron/fastdfs
Using default tag: latest
latest: Pulling from delron/fastdfs
469cfcc7a4b3: Pull complete
4b4f08bd0171: Pull complete
95eef9978b96: Pull complete
aff83d00c747: Pull complete
1e95dffa1075: Pull complete
f114184ac28c: Pull complete
649b2ad6afe2: Pull complete
8ab2127a38c5: Pull complete
4d12f9bd27c7: Pull complete
bfc05d82f0a6: Pull complete
76f2a6d84a19: Pull complete
89bd9c4e6fea: Pull complete
6c06548e40ac: Pull complete
11186700b494: Pull complete
Digest: sha256:9583cb80170c153bc12615fd077fe364a8fd5a95194b7cf9a8a32d2c11f8a49d
Status: Downloaded newer image for delron/fastdfs:latest
docker.io/delron/fastdfs:latest
2.建立tracker容器
docker run -d --network=host --name tracker -v /usr/local/docker/fdfs/tracker:/var/fdfs delron/fastdfs tracker
3.建立storage容器
docker run -d --network=host --name storage -e TRACKER_SERVER=192.168.80.128:22122 -v /usr/local/docker/fdfs/storage:/var/fdfs -e GROUP_NAME=group1 delron/fastdfs storage
完成後使用
netstat -aon | grep 22122
檢視端口占用情況
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TPR5UNZRkT5tGRPpHOslVModEZwRmMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL0UTN1EjMzYTMyADNwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
4.配置nginx端口(如果不需要修改的可以跳過)
## 進入storage
docker exec -it storage bash
## 編輯端口(預設為8888,如不需要修改可以跳過,如果bash: vim: command not found 使用
## yum install vim 安裝後執行)
vim /etc/fdfs/storage.conf
## 修改nginx的端口(與上面儲存一緻即可)
vi /usr/local/nginx/conf/nginx.conf
## 如果修改後,退出容器重新開機下storage
docker restart storage
## 檢視tracker容器和storage容器的關聯
cd /etc/fdfs/
[[email protected] fdfs]# ls
client.conf mime.types storage.conf.sample tracker.conf
client.conf.sample mod_fastdfs.conf storage_ids.conf tracker.conf.sample
http.conf storage.conf storage_ids.conf.sample
## 檢視關系
fdfs_monitor storage.conf
5.模拟上傳
在/usr/local/docker/fdfs/storage中上傳一個檔案1.png,進入storage容器
## 進入storage容器
docker exec -it storage bash
## 進入fdfs目錄
cd /var/fdfs
## ll就可以看見那個檔案,沒有就是路徑錯誤或者沒有上傳上去
[[email protected] fdfs]# ll
total 164
-rw-r--r--. 1 root root 153070 Apr 2 05:29 1.png
drwxr-xr-x. 259 root root 8192 Apr 2 08:31 data
drwxr-xr-x. 2 root root 25 Apr 2 08:31 logs
## 上傳檔案
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf 1.png
## 成功後傳回
group1/M00/00/00/wKhQgF6FptGALpuFAAJV7nnaW2k051.png
有傳回的資料後,通過ip+端口+傳回内容即可通路
如果通路不到,考慮防火牆開啟,需要将8888,22122,23000加入通行端口後重新開機防火牆。
## 檢視防火牆狀态
[[email protected] tracker_data]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since 四 2020-04-02 11:45:43 CST; 5h 8min ago
Main PID: 916 (firewalld)
Memory: 484.0K
CGroup: /system.slice/firewalld.service
└─916 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
## 将8888,22122,23000加入通行端口
[[email protected] tracker_data]# firewall-cmd --zone=public --permanent --add-port=8888/tcp
success
[[email protected] tracker_data]# firewall-cmd --zone=public --permanent --add-port=22122/tcp
success
[[email protected] tracker_data]# firewall-cmd --zone=public --permanent --add-port=23000/tcp
success
## 重新開機防火牆
[[email protected] tracker_data]# systemctl restart firewalld
6.開啟開機啟動容器
docker update --restart=always tracker
docker update --restart=always storage
7.開啟多個storage
由于鏡像是将nginx内置了,是以需要配置将nginx的端口修改為其他的。
首先先建一個storage1檔案夾,用于存放另一個storage的資料。
## 建立新的檔案夾存儲資料
mkdir -p /usr/local/docker/fdfs/storage1
## 建立storage1容器 主要名字,group1可以修改為group2也可以不鏽鋼
docker run -d --network=host --name storage1 -e TRACKER_SERVER=192.168.80.128:22122 -v /usr/local/docker/fdfs/storage1:/var/fdfs -e GROUP_NAME=group2 delron/fastdfs storage
## 進入storage1容器
docker exec -it storage1 bash
修改storage.cnf
## 1.需要将端口修改為8889,不能與之前的storage一樣,但是需要與下面要修改nginx的端口一緻
## 2.需要将端口23000修改為23001,否則啟動會沖突,且
vim /etc/fdfs/storage.conf
## 修改内容
http.server_port=8889
port=23001
修改nginx的端口
## 修改nginx的端口,這裡需要與storage.conf中的http.server_port一緻
vim /etc/fdfs/nginx.conf
修改mod_fastdfs.conf中内容
## 需要将storage_server_port=23000修改為23001
vim /etc/fdfs/mod_fastdfs.conf
## 修改如下内容
storage_server_port=23001
完成後重新開機即可