docker search fastdfs
INDEX       NAME                                     DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
docker.io docker.io/season/fastdfs FastDFS
docker.io docker.io/luhuiguo/fastdfs FastDFS is an open source high performance... [OK]
docker.io docker.io/morunchang/fastdfs A FastDFS image
docker.io docker.io/ygqygq2/fastdfs-nginx 整合了nginx的fastdfs [OK]
docker.io docker.io/lionheart/fastdfs-tracker just have a try on autobuilded -_-# [OK]
docker.io docker.io/imlzw/fastdfs-tracker fastdfs的tracker服务 [OK]
docker.io docker.io/qbanxiaoli/fastdfs FastDFS单机版 [OK]
docker.io docker.io/appcrash/fastdfs_nginx fastdfs with nginx
docker.io docker.io/delron/fastdfs
docker.io docker.io/evan1120/fastdfs_storage The fastdfs storage image [OK]
docker.io docker.io/evan1120/fastdfs_tracker The fastdfs tracker docker image, only con... [OK]
docker.io docker.io/imlzw/fastdfs-storage fastdfs的storage服务 [OK]
docker.io docker.io/imlzw/fastdfs-storage-dht fastdfs的storage服务,并且集成了fastdht的服务,实现文件排重 [OK]
docker.io docker.io/john123951/fastdfs_storage fastdfs storage [OK]
docker.io docker.io/lionheart/fastdfs-storage 更加规范的Dockerfile,能够自动构建了。 [OK]
docker.io docker.io/lionheart/fastdfs_storage the fastdfs file system's storage node 1
docker.io docker.io/lionheart/fastdfs_tracker fastdfs file system‘s tracker node
docker.io docker.io/ecarpo/fastdfs-storage
docker.io docker.io/john123951/fastdfs_tracker fastdfs tracker [OK]
docker.io docker.io/manuku/fastdfs-fastdht fastdfs fastdht [OK]
docker.io docker.io/manuku/fastdfs-storage-dht fastdfs storage dht [OK]
docker.io docker.io/manuku/fastdfs-storage-proxy fastdfs storage proxy [OK]
docker.io docker.io/manuku/fastdfs-tracker fastdfs tracker [OK]
docker.io docker.io/mypjb/fastdfs this is a fastdfs docker project [OK]
docker.io docker.io/tsl0922/fastdfs FastDFS is an open source high performance... [OK]

2.下载镜像文件

docker pull morunchang/fastdfs

3.安装tracker跟踪器容器

docker run -d --name tracker --restart=always --net=host morunchang/fastdfs sh tracker.sh

tracker容器使用host网络,docker容器中的几种网络模式,这里就不介绍了,后面有时间进行补充。
4.进入tracker容器

docker exec -it tracker /bin/bash

修改文件 nginx.conf

vi /etc/nginx/conf/nginx.conf
http {
include mime.types;
default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on;
#tcp_nopush on; #keepalive_timeout ;
keepalive_timeout ; #gzip on; server {
listen ;
server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / {
root html;
index index.html index.htm;
} location ~ /M00 {
root /data/fast_data/data;
ngx_fastdfs_module;
...................

这里是nginx监听tracker的端口号,即tracker的访问端口号,不过,需要直接访问tracker么?
修改文件client.conf

vi /etc/fdfs/client.conf
.
. # the base path to store log files
base_path=/data/fast_data # tracker_server can ocur more than once, and tracker_server format is
# "host:port", host can be hostname or ip address
tracker_server=x.x.x.x:
#这里的这个IP是你本地/服务器的ip,端口号tracker的端口号,你需要自己指定,但是需要跟tracker.conf文件中的端口号一致。
# specify storage ids filename, can use relative or absolute path
# same as tracker.conf
# valid only when load_fdfs_parameters_from_tracker is false
# since V4.
storage_ids_filename = storage_ids.conf #HTTP settings
http.tracker_server_port= #use "#include" directive to include HTTP other settiongs
##include http.conf
这里的端口号是tracker的访问端口号,和上面的22122不是一个。

修改文件tracker.conf

vi /etc/fdfs/tracker.conf
......
disabled=false # bind an address of this host
# empty for bind all addresses of this host
bind_addr= # the tracker server port
port=
#这个端口号是tracker的端口号。
# connect timeout in seconds
# default value is 30s
connect_timeout= connection_pool_max_idle_time = # HTTP port on this tracker server
http.server_port=
这个是tracker的监听端口号,http访问的端口号。好像该不该都无所谓
# check storage HTTP server alive interval seconds
# <= for never check
# default value is
http.check_alive_interval=

5.退出容器

6.安装storage储存器容器
现在/home下面创建文件夹

[root@ ~]# mkdir -p /home/docker/fastdfs/storage/
docker run -d --name storage --net=host --restart=always -e TRACKER_IP=189.215.159.153: -v /home/docker/fastdfs/storage:/data/fast_data -e GROUP_NAME=group1 morunchang/fastdfs sh storage.sh
#IP建议用公网ip,私网的ip网络进入不了

注意:这里的端口号是tracker容器的ip和端口号,不是tracker的http访问的端口号。
进入容器

docker exec -it storage /bin/bash
修改文件nginx.conf
vi /etc/nginx/conf/nginx.conf
....
... http {
include mime.types;
default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on;
#tcp_nopush on; #keepalive_timeout ;
keepalive_timeout ; #gzip on; server {
listen ;
      #######支持https###########
      #listen ssl;
      #server_name xx.xxxxx.com;
      #ssl on;
      #ssl_certificate /etc/nginx/cert/.pem;  #必须得先把这两个证书准备好
      #ssl_certificate_key /etc/nginx/cert/.key;
      #ssl_session_timeout 5m;
      #ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
      #ssl_protocols TLSv1 TLSv1. TLSv1.;
      #ssl_prefer_server_ciphers on;
      #######支持https########### #这里是storage容器的监听端口号。
#charset koi8-r; #access_log logs/host.access.log main; location / {
root html;
index index.html index.htm;
}

为了支持https需要在容器里面做一下操作

apt-get update
git clone https://github.com/happyfish100/libfastcommon.git
git clone https://github.com/happyfish100/fastdfs-nginx-module.git
cd libfastcommon/
./make.sh
./make.sh install
apt-get install wget
wget http://nginx.org/download/nginx-1.13.12.tar.gz
tar -xvf nginx-1.13..tar.gz
mv nginx-1.13. nginx
cd nginx
apt-get install openssl libssl-dev
./configure --prefix=/etc/nginx --add-module=/data/fastdfs-nginx-module/src --with-http_stub_status_module --with-http_ssl_module
make
make install
/etc/nginx/sbin/nginx -v
/etc/nginx/sbin/nginx -s reload

查看是否已经监听443端口

root@:/# ss -tnpl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN *: *:*
LISTEN *: *:*
LISTEN *: *:*
LISTEN *: *:* users:(("nginx",pid=,fd=))
LISTEN *: *:*
LISTEN *: *:* users:(("fdfs_storaged",pid=,fd=))
LISTEN 127.0.0.1: *:*
LISTEN *: *:* users:(("nginx",pid=,fd=))
LISTEN 127.0.0.1: *:*
LISTEN ::: :::*
LISTEN ::: :::*
LISTEN ::: :::*
LISTEN ::: :::*
LISTEN ::: :::*
LISTEN ::: :::*
LISTEN ::: :::*
LISTEN ::: :::*
LISTEN ::: :::*
root@:/#

以上443端口已经监听,已经支持https形式

修改文件client.conf

vi /etc/fdfs/client.conf
#不再本容器测试就不用改

tracker容器的访问端口号
修改文件storage的storage.conf

vi /etc/fdfs/storage.conf
client_bind=true # the storage server port
port= # connect timeout in seconds
# default value is 30s
.
.
.
connection_pool_max_idle_time = # use the ip address of this storage server if domain_name is empty,
# else this domain name will ocur in the url redirected by the tracker server
http.domain_name= # the port of the web server on this storage server
#storage的访问端口号
#http.server_port=
http.server_port=

7.退出容器,重启tracker和storage

docker restart storage tracker
netstat -tnlp #查看监听的端口
cd /home/docker/fastdfs/storage/data///
#进入容器上传图片
[root@:/]# fdfs_test /etc/fdfs/client.conf upload xxxxx.jpg

8.报错调整ERROR - file: tracker_proto.c, line: 48, server: 10.171.22.124:22122, response status 2 != 0

排查思路:

在tracker上使用fdfs_monitor /etc/fdfs/client.conf 命令查看storage的状态是offline

fdfs_monitor /etc/fdfs/client.conf delete group1 storage的IP地址。    #先在tracker上删除storage的信息。

rm -rf /data/fastdfs/data        #删除storage的数据目录。

service fdfs_storaged restart    #重启storage

在tracker上再次使用fdfs_monitor查看storage的状态,显示active。上传图片,正常了。

docker安装fastdfs单机版的更多相关文章

  1. docker安装fastdfs与java客户端测试

    一.docker 安装FastDFS 1.拉取镜像 docker pull morunchang/fastdfs 2.创建并启动tracker容器 docker run -d --name=track ...

  2. docker安装fastdfs碰到storage的IP地址映射宿主地址问题

    一.概述 最近公司准备全面实施docker部署,解决每次项目实施安装部署环境工作量大问题,mysql5.7.oracle12c很顺利,在安装fastdfs时碰到storage的IP地址映射问题.服务器 ...

  3. Linux 安装FastDFS<单机版>(使用Mac远程访问)

    阅读本文需要先阅读安装FastDFS<准备> 一 编译环境 yum install gcc-c++ yum -y install libevent yum install -y pcre ...

  4. CentOS7 安装FastDFS单机版

    1. 下载 FastDFS https://github.com/happyfish100/fastdfs/releases libfastcommon https://github.com/happ ...

  5. docker 安装 fastdfs

    fastdfs 安装 //1.拉取镜像 docker pull morunchang/fastdfs //2.启动tracker docker run -d --name tracker --net= ...

  6. 使用Docker安装FastDFS(分布式文件系统)

    1. 获取镜像 可以利用已有的FastDFS Docker镜像来运行FastDFS. 获取镜像可以通过下载 docker image pull delron/fastdfs 也可是直接使用提前下载的镜 ...

  7. Docker安装FastDFS

    什么是FastDFS? FastDFS 是用 c 语言编写的一款开源的分布式文件系统.FastDFS 为互联网量身定制, 充分考虑了冗余备份.负载均衡.线性扩容等机制,并注重高可用.高性能等指标,使用 ...

  8. Docker与FastDFS的安装命令及使用

    Docker特点 1)上手快 用户只需要几分钟,就可以把自己的程序“Docker 化”.Docker 依赖于“写时复制” (copy-on-write)模型,使修改应用程序也非常迅速,可以说达到“随心 ...

  9. Linux 安装FastDFS<准备>(使用Mac远程访问)

    阅读本文需要一定的Linux基础 一 FastDFS简介 fastdfs是用c语言编写的一款开源分布式文件系统, fastdfs为互联网量身定制, 充分考虑了冗余备份, 负载均衡, 线性扩容等机制, ...

随机推荐

  1. react 生命周期钩子里不要写逻辑,否则不生效

    react 生命周期钩子里不要写逻辑,否则不生效,要把逻辑写在函数里,然后在钩子里调用函数,否则会出现问题.

  2. [PyData] 03 - Data Representation

    Ref: http://blog.csdn.net/u013534498/article/details/51399035 如何在Python中实现这五类强大的概率分布 考虑下在mgrid上画二维概率 ...

  3. 如何获取类或属性的自定义特性(Attribute)

    如何获取类或属性的自定义特性(Attribute) 问题说明: 在ActiveRecord或者其他的ORM等代码中, 我们经常可以看到自定义特性(Attribute)的存在(如下面的代码所示) [Pr ...

  4. python3之枚举

    枚举 li = ['a','b','c','d'] for index,i in enumerate(li): #for index,i in enumerate(li,100): print(ind ...

  5. sometimes we should use "disable fork" instead of "disable block_name"

    A disable named block statement stops the execution of all blocks with that same name in all threads ...

  6. Semver(语义化版本号)扫盲

    最近Github 10周年在朋友圈里沸沸扬扬刷屏,小编在工作中却惊讶的发现不少同事对版本号中的beta和rc没有概念,使用 npm install package@next 时,也不清楚next代表的 ...

  7. Django----From组件

    Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 1.创建Form类 from django.f ...

  8. Linux多进程和多线程的一次gdb调试实例

    转载https://typecodes.com/cseries/multilprocessthreadgdb.html 1 原文整理 默认设置下,在调试多进程程序时gdb只会调试主进程.gdb7以上的 ...

  9. Adobe Photoshop CS6简单的破解

    由于网站的页面布局和素材准备等等需要用到Photoshop,所以下载了个 Photoshop CS6,写这份破解文档的大佬感觉写的很复杂,看了让人头疼,乱搞中突然发现一个方法可以很快的进行破解操作,我 ...

  10. 洛谷P1118 数字三角形【dfs】【STL】

    题目链接:https://www.luogu.org/problemnew/show/P1118 题意: 1~n的一个排列,相邻的两项加起来得到下一行. 现在给定最后一行的数字,问最初的1~n的排列是 ...