使用docker搭建FastDFS

拉取镜像

[root@localhost ~]# docker pull phinexdaz/fdfs_tracker
[root@localhost ~]# docker pull phinexdaz/fdfs_storage

docker-componse.yml

[root@localhost fdfs]# cat docker-componse.yml 
version: '2'

services: 
    fdfs_tracker:
        image: phinexdaz/fdfs_tracker
        container_name: fdfs_tracker
        cap_add:
            - LINUX_IMMUTABLE
        ports:
            - "22122:22122"
        volumes:
            - /etc/localtime:/etc/localtime:ro
            - /opt/compose-conf/df/data/fastdfs/tracker:/data/tracker
        hostname: fdfs_tracker
        restart: always
        environment:
            - LANG=zh_CN.UTF-8
        mem_limit: 2g
        memswap_limit: 2g
        stdin_open: true
        tty: true
    fdfs_storage:
        image: phinexdaz/fdfs_storage
        links:
            - fdfs_tracker
        container_name: fdfs_storage
        cap_add:
            - LINUX_IMMUTABLE
        ports:
            - "80:80"
            - "23000:23000"
        volumes:
            - /etc/localtime:/etc/localtime:ro
            - /opt/compose-conf/df/data/fastdfs/storage:/data/storage
            
        hostname: fdfs_storage
        restart: always
        environment:
            - LANG=zh_CN.UTF-8
            - TRACKER=fdfs_tracker
        mem_limit: 2g
        memswap_limit: 2g
        stdin_open: true
        tty: true

启动fdfs

[root@localhost fdfs]# docker-compose -f docker-componse.yml up -d
# 进入docker
[root@localhost fdfs]# docker-enter fdfs_storage
# 更改启动脚本, 更改ip变量
[root@fdfs_storage /]# cat /entrypoint.sh 
#!/bin/bash

STORAGE_BASE_PATH="/data/storage"
STORAGE_LOG_FILE="$STORAGE_BASE_PATH/logs/storaged.log"
STORAGE_CONF_FILE="/etc/fdfs/storage.conf"

echo "start fdfs_storgaed..."

#ip=`cat /etc/hosts | grep $TRACKER | awk '{print $1}'`
ip=$TRACKER
sed -i "s/^.*tracker_server=.*$/tracker_server=$ip:22122/" /etc/fdfs/storage.conf
sed -i "s/^.*tracker_server=.*$/tracker_server=$ip:22122/" /etc/fdfs/client.conf
sed -i "s/^.*tracker_server=.*$/tracker_server=$ip:22122/" /etc/fdfs/mod_fastdfs.conf
 
fdfs_storaged "$STORAGE_CONF_FILE"
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 
tail -f "$STORAGE_LOG_FILE"

# 提交镜像
[root@localhost fdfs]# docker commit fdfs_storage phinexdaz/fdfs_storage

[root@localhost fdfs]# docker-compose -f docker-componse.yml up -d

测试

[root@localhost fdfs]# docker-enter fdfs_storage
[root@localhost fdfs]# docker-enter fdfs_storage fdfs_upload_file /etc/fdfs/client.conf /tmp/ss.txt
[root@localhost ~]# curl http://127.0.0.1:88/group1/M00/00/00/rBcAA1yi9nmAQ56OAAAABFqCAvc886.txt
123
上一篇:FastDfs 分布式文件系统 (实测成功)


下一篇:fastDFS 分布式文件系统应用