fastdfs通過docker安裝


安裝前准備

# yum install -y git #下載git
# cd /data
# mkdir fastdfs
# cd fastdfs
# git clone https://github.com/happyfish100/fastdfs.git #克隆fastdfs倉庫到本地
Cloning into 'fastdfs'...
remote: Enumerating objects: 6, done.
remote: Counting objects: 100% (6/6), done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 1107 (delta 1), reused 1 (delta 0), pack-reused 1101
Receiving objects: 100% (1107/1107), 6.34 MiB | 26.00 KiB/s, done.
Resolving deltas: 100% (736/736), done. #克隆完畢

構建鏡像

# cd /data/fastdfs/docker/dockerfile_network# docker build -t fastdfs:latest . #構建鏡像
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
fastdfs latest c1c4e7f3a646 5 hours ago 493MB
# mkdir -p /data/fastdfs/tracker_data
# mkdir -p /data/fastdfs/storage_data
# mkdir -p /etc/fdfs
# cp /data/fastdfs/fastdfs/docker/dockerfile_network/conf/* /etc/fdfs/

使用docker鏡像構建tracker容器(跟蹤服務器,起到調度的作用)

修改tracker配置文件# vim /etc/fdfs/tracker.conf

# the base path to store data and log files
base_path=/fastdfs/storage/products
# when store_lookup set to 1, must set store_group to the group name
store_group=group0

創建tracker服務

# docker run -ti -d --name tracker -v /etc/fdfs:/etc/fdfs -v /data/fastdfs/tracker_data:/fastdfs/tracker -p 22122:22122 fastdfs:latest tracker 
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0bc17faeec29 fastdfs:latest "/home/fastdfs.sh tr…" 34 minutes ago Up 34 minutes 80/tcp, 8888/tcp, 23000/tcp, 0.0.0.0:22122->22122/tcp tracker

進入tracker容器

# docker exec -it tracker /bin/bash 
# mkdir /fastdfs/storage/products
# yum -y install net-tools 
# yum -y install telnet
# yum -y install initscripts
# ip -4 a # 查看IP
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
24: eth0@if25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link-netnsid 0
inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
valid_lft forever preferred_lft forever
172.17.0.2 # tracker service服務的IP
# ss -ntlp #查看端口
State Recv-Q Send-Q Local Address:Port Peer Address:Port 
LISTEN 0 128 *:80 *:* users:(("nginx",pid=19,fd=6))
LISTEN 0 128 *:8888 *:* users:(("nginx",pid=19,fd=7))
明顯22122端口沒啟動

# cd /etc/init.d
# ls
fdfs_storaged fdfs_trackerd functions netconsole network README
# ./fdfs_trackerd start # 啟動tracker服務
Starting FastDFS tracker server: 
# ss -ntlp
State Recv-Q Send-Q Local Address:Port Peer Address:Port 
LISTEN 0 128 *:80 *:* users:(("nginx",pid=19,fd=6))
LISTEN 0 128 *:8888 *:* users:(("nginx",pid=19,fd=7))
LISTEN 0 128 *:22122 *:* users:(("fdfs_trackerd",pid=103,fd=5))

使用docker鏡像構建storage容器(存儲服務器,提供容量和備份服務)

修改storage配置文件

# vim /etc/fdfs/storage.conf 
# and storage_ids.conf must be configed correctly.
group_name=group0
# the base path to store data and log files
base_path=/fastdfs/storage/products
# store_path#, based 0, if store_path0 not exists, it's value is base_path
# the paths must be exist
store_path0=/fastdfs/storage/products/statics
store_path1=/fastdfs/storage/products/thumb
#store_path1=/home/dfs2
# tracker_server can ocur more than once, and tracker_server format is
# "host:port", host can be hostname or ip address
tracker_server=172.17.0.2:22122 # tracker_server服務的IP端口

創建storage服務

# docker run -ti -d --name storage -v /etc/fdfs:/etc/fdfs -v /data/fastdfs/storage_data:/fastdfs/storage/products -e TRACKER_SERVER:172.17.0.2:22122 -p 8888:8888 -p 23000:23000 fastdfs:latest storage 
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2c75062a1666 fastdfs:latest "/home/fastdfs.sh st…" 3 hours ago Up 3 hours 80/tcp, 0.0.0.0:8888->8888/tcp, 22122/tcp, 0.0.0.0:23000->23000/tcp storage

進入storage容器

# docker exec -it storage /bin/bash 
# yum -y install net-tools 
# yum -y install telnet
# yum -y install initscripts
# ip -4 a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
26: eth0@if27: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link-netnsid 0
inet 172.17.0.3/16 brd 172.17.255.255 scope global eth0
valid_lft forever preferred_lft forever
172.17.0.3 # storage service服務的IP
# ss -ntlp #查看端口
State Recv-Q Send-Q Local Address:Port Peer Address:Port 
LISTEN 0 128 *:22122 *:* users:(("fdfs_trackerd",pid=20,fd=5))
LISTEN 0 128 *:80 *:* users:(("nginx",pid=22,fd=6))
LISTEN 0 128 *:23000 *:* users:(("fdfs_storaged",pid=168,fd=5))
LISTEN 4 128 *:8888 *:* users:(("nginx",pid=22,fd=7))
注:23000端口沒啟動時
# cd /etc/init.d
# ls
fdfs_storaged fdfs_trackerd functions netconsole network README
./fdfs_storaged 
Usage: ./fdfs_storaged {start|stop|status|restart|condrestart}
# ./fdfs_storaged start
# ./fdfs_storaged status # 查看是啟動狀態 
# ss -ntlp 查看未啟動
這時,# kill -9 pid 再 # ./fdfs_storaged start 即可
用測試程序測試服務可用性(上傳文件到storage容器)
# docker exec -it tracker /bin/bash 
# echo hello world > /opt/123.txt
# fdfs_test /etc/fdfs/client.conf upload /opt/123.txt 
打印如下信息即認為測試通過
This is FastDFS client test program v5.12

Copyright (C) 2008, Happy Fish / YuQing

FastDFS may be copied only under the terms of the GNU General
Public License V3, which may be found in the FastDFS source kit.
Please visit the FastDFS Home Page http://www.csource.org/ 
for more detail.

[2019-08-27 06:31:58] DEBUG - base_path=/fastdfs/storage/products, connect_timeout=30, network_timeout=60, tracker_server_count=1, anti_steal_token=0, anti_steal_secret_key length=0, use_connection_pool=0, g_connection_pool_max_idle_time=3600s, use_storage_id=0, storage server id count: 0

tracker_query_storage_store_list_without_group: 
server 1. group_name=, ip_addr=172.17.0.3, port=23000

group_name=group0, ip_addr=172.17.0.3, port=23000
storage_upload_by_filename
group_name=group0, remote_filename=M00/00/00/rBEAA11kzl6ASXZWAAAADK8IOy0581.txt
source ip address: 172.17.0.3
file timestamp=2019-08-27 06:31:58
file size=12
file crc32=2936552237
example file url: http://172.17.0.3/group0/M00/00/00/rBEAA11kzl6ASXZWAAAADK8IOy0581.txt
storage_upload_slave_by_filename
group_name=group0, remote_filename=M00/00/00/rBEAA11kzl6ASXZWAAAADK8IOy0581_big.txt
source ip address: 172.17.0.3
file timestamp=2019-08-27 06:31:58
file size=12
file crc32=2936552237
example file url: http://172.17.0.3/group0/M00/00/00/rBEAA11kzl6ASXZWAAAADK8IOy0581_big.txt
# docker exec -it storage /bin/bash 
# cd /fastdfs/storage/products/statics/data/00/00
# cat rBEAA11kzl6ASXZWAAAADK8IOy0581.txt
hello world

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM