此镜像为基于ARM架构服务器构建的镜像。当前版本为:v6.07。不兼容X86_64服务器。
This is FastDFS client test program v6.07
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.fastken.com/
for more detail.
拉取镜像后,单机部署可直接启动:
docker run -d \
--restart=always \
--privileged=true \
--net=host \
--name=fastdfs \
-e FASTDFS_IPADDR=192.168.0.165 \
-e WEB_PORT=8080 \
-v /usr/soft/fastdfs:/home/fastdfs \
onlyonelmm/fastdfs-arm64:latest
其中参数 IP 为当前机器的IP, 是必须要修改的,这里IP可以是内网IP,仅供局域网范围内使用,如果是生产服务器,则需要使用公网IP。否则在上传文件时,会提示22122端口连接超时或者23000端口超时。
WEB_PORT参数可要可不要,如果不加此参数, 默认nginx访问端口为8888,这里在运行时改为8080。其中nginx的80端口为nginx默认使用了,这里并没有屏蔽,如果需要将fastdfs的资源访问端口改为80,则需要在启动容器后,手动进入容器内部修改。修改方式,在最后会贴出来。
容器中的文件统一挂到 /home/fastdfs 下了,这里将此目录挂载到宿主机的/usr/soft/fastdfs 文件夹下。包含文件和日志。
正常启动后,可以查看容器日志:docker logs 容器ID ,正常如下所示,否则会有错误提示信息:
[root@ecs-603f-0002 ~]# docker logs ce32d48efc0e
FASTDFS_IPADDR= 192.168.0.165
WEB_PORT= 8080
start trackerd
start storage
start nginx
ngx_http_fastdfs_set pid=24
fastdfs start success........
这时,直接在宿主机上访问:curl localhost 正常可以看到nginx的欢迎页。如果后面修改了fastdfs的资源访问端口,则只能拿上传的文件测试预览下载。
正常启动后,在不借助其他任何工具的情况下,可以进入容器中,测试文件上传。
进入容器内部:docker exec -it ce32d48efc0e bash
新建一个html文件:echo '<h1>Hello World ! FastDfs .</h1>' > index.html
测试上传:/usr/bin/fdfs_test /etc/fdfs/client.conf upload index.html
[root@ecs-603f-0002 /]# /usr/bin/fdfs_test /etc/fdfs/client.conf upload index.html
This is FastDFS client test program v6.07
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.fastken.com/
for more detail.
[2022-02-28 11:16:25] DEBUG - base_path=/home/fastdfs, connect_timeout=5, 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=192.168.0.165, port=23000
group_name=group1, ip_addr=192.168.0.165, port=23000
storage_upload_by_filename
group_name=group1, remote_filename=M00/00/00/wKgApWIcrwmACh0gAAAAITYrfZM95.html
source ip address: 192.168.0.165
file timestamp=2022-02-28 11:16:25
file size=33
file crc32=908819859
example file url: http://192.168.0.165:8888/group1/M00/00/00/wKgApWIcrwmACh0gAAAAITYrfZM95.html
storage_upload_slave_by_filename
group_name=group1, remote_filename=M00/00/00/wKgApWIcrwmACh0gAAAAITYrfZM95_big.html
source ip address: 192.168.0.165
file timestamp=2022-02-28 11:16:26
file size=33
file crc32=908819859
example file url: http://192.168.0.165:8888/group1/M00/00/00/wKgApWIcrwmACh0gAAAAITYrfZM95_big.html
访问:curl http://192.168.0.165:8888/group1/M00/00/00/wKgApWIcrwmACh0gAAAAITYrfZM95_big.html 正常可以预览上传的html文件内容。
注意:这里有一点小问题,上面上传成功后,提示的地址example file url的端口有点问题,不是docker run 命令里面的端口。但是这个并不影响文件的正常访问,在容器内可能会访问不了这个地址,回到宿主机上面,改下 example file url的端口为上面命令中的WEB_PORT,即可正常访问该文件内容。
如果感觉vi编辑器修改不太方便,这里可以先将容器中的文件给拷贝出来,下载到本地,修改后,再拷到容器里面去。
vim /etc/fdfs/client.conf 需要修改的内容如下:
http.tracker_server_port = 8888 # http访问文件的端口(默认8888,看情况修改,和nginx中保持一致)
vim /etc/fdfs/storage.conf 需要修改的内容如下:
http.server_port=80 # http访问文件的端口(默认8888,看情况修改,和nginx中保持一致)
vim /etc/fdfs/tracker.conf 需要修改的内容如下:
http.server_port=80 # http访问文件的端口(默认8888,看情况修改,和nginx中保持一致)
vim /usr/local/nginx/conf/nginx.conf 修改监听80端口的server块配置:
server {
listen 80; ## 该端口为storage.conf中的http.server_port相同
server_name localhost;
location ~/group[0-9]/ {
ngx_fastdfs_module;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
可以进入容器中看到启动的脚本/home/fastdfs_start.sh 这是启动tracker, storage, nginx的脚本,以及动态替换配置文件中的IP和端口。可以基于此脚本自定义修改。fastdfs的配置文件目录为:/etc/fdfs 里面文件为:
client.conf http.conf index.html mime.types mod_fastdfs.conf storage.conf storage_ids.conf tracker.conf
在多台机器上运行此镜像后,进入容器内部,修改配置文件,支持多个 tracker_server即可。
vim /etc/fdfs/storage.conf
#需要修改的内容如下
tracker_server=192.168.52.2:22122 # 服务器1
tracker_server=192.168.52.3:22122 # 服务器2
tracker_server=192.168.52.4:22122 # 服务器3
http.server_port=8888 # http访问文件的端口(默认8888,看情况修改,和nginx中保持一致)
vim /etc/fdfs/client.conf
#需要修改的内容如下
tracker_server=192.168.52.2:22122 # 服务器1
tracker_server=192.168.52.3:22122 # 服务器2
tracker_server=192.168.52.4:22122 # 服务器3
vim /etc/fdfs/mod_fastdfs.conf
#需要修改的内容如下
tracker_server=192.168.52.2:22122 # 服务器1
tracker_server=192.168.52.3:22122 # 服务器2
tracker_server=192.168.52.4:22122 # 服务器3
url_have_group_name=true
如果进入容器手动修改了配置文件,可以尝试直接在容器内重启fastdfs,重启的命令是: restart trackerd
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
restart storage
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
# 会显示会有几台服务器 有3台就会 显示 Storage 1-Storage 3的详细信息
tracker_server #有几台服务器写几个
group_name #地址的名称的命名
bind_addr #服务器ip绑定
store_path_count #store_path(数字)有几个写几个
store_path(数字) #设置几个储存地址写几个 从0开始
如果上传成功 但是nginx报错404 先检查mod_fastdfs.conf文件中的store_path0是否一致
如果nginx无法访问 先检查防火墙 和 mod_fastdfs.conf文件tracker_server是否一致,这个坑了我好久。。。。。。
如果`tracker`,`storage`,任意一个没有正常启动,则nginx就无法访问,可以从nginx的启动日志里面看到,nginx启动会检测`tracker`,`storage`。所以留个nginx的欢迎页的端口还是有点用处的。
如果检测集群发现有错误的集群信息,则看下是否之前启动失败过,并且再次运行docker run 时,是否删除挂载的宿主机目录,否则集群配置可能读取到之前启动失败配置的信息。
Content type
Image
Digest
Size
212.5 MB
Last updated
over 4 years ago
docker pull onlyonelmm/fastdfs-arm64