Docker一鍵搭建 FastDFS單機版 圖片伺服器
阿新 • • 發佈:2018-12-18
本教程基於docker和docker-compose環境,使用了morunchang/fastdfs映象(包含nginx訪問模組).可快速實現FastDFS的單機圖片伺服器部署.
1 建立docker檔案結構
檔案結構如下
2 編寫docker-compose檔案
docker-compose.yml檔案如下
version: '3'
services:
tracker:
image: "morunchang/fastdfs"
ports:
- "22122:22122"
entrypoint: sh tracker.sh
storage:
depends_on:
- tracker
build: ./storage
environment:
GROUP_NAME: group1
TRACKER_IP: 機器IP:22122
ports:
- "8088:8080"
- "23000:23000"
volumes:
- /my/data/fast_data:/data/fast_data
- 思路:
tracker是直接執行,而storage則需要根據dockerfile來自己構建映象執行,這是因為需要對
nginx.conf
檔案進行配置 - 注意: 22122是tracker的埠,23000是storage的埠,這兩個埠寫在彼此的配置檔案中,除非修改配置檔案,否則不要去改,通過對映的方法也不行.8080是nginx訪問埠,只配置在storage裡面,所以可通過對映改為其他埠
3 編寫Dockerfile檔案
內容如下,只是把配置檔案拷貝進來,覆蓋掉原檔案
FROM morunchang/fastdfs
COPY nginx.conf /data/nginx/conf/nginx.conf
ENTRYPOINT sh storage.sh
4 編寫nginx.conf檔案
在容器的/data/nginx/conf目錄下本來就有一個nginx.conf檔案,將其複製出來,在server結構下新增如下內容
location /group1/M00 {
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_cache http-cache;
proxy_cache_valid 200 304 12h;
proxy_cache_key $uri$is_args$args;
proxy_pass http://fdfs_group1;
expires 30d;
}
- 注意 如果上面docker-compose檔案中GROUP_NAME不為group1,則這裡需要對應修改
這裡貼出我的nginx.conf檔案,已經把大部分註釋刪掉了
#user nobody;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 8888;
server_name localhost;
location /group1/M00 {
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_cache http-cache;
proxy_cache_valid 200 304 12h;
proxy_cache_key $uri$is_args$args;
proxy_pass http://fdfs_group1;
expires 30d;
}
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
5 執行測試
在docker-compose.yml
所在目錄執行docker-compose up -d
即可,使用docker ps
觀測結果如下
使用客戶端上傳,檔案在/my/data/fast_data目錄下(docker-compose檔案映射出來的)