天天看點

docker中安裝fastdfs

首先需要建立兩個檔案夾用于存放資料

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

檢視端口占用情況

docker中安裝fastdfs
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
           
docker中安裝fastdfs
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
           

完成後重新開機即可