安装前准备

# 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: , done.
remote: Counting objects: % (/), done.
remote: Compressing objects: % (/), done.
remote: Total (delta ), reused (delta ), pack-reused
Receiving objects: % (/), 6.34 MiB | 26.00 KiB/s, done.
Resolving deltas: % (/), done. #克隆完毕

构建镜像

# cd /data/fastdfs/docker/dockerfile_network# docker build -t fastdfs:latest . #构建镜像
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
fastdfs latest c1c4e7f3a646 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 , 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 : fastdfs:latest tracker
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0bc17faeec29 fastdfs:latest "/home/fastdfs.sh tr…" minutes ago Up minutes /tcp, /tcp, /tcp, 0.0.0.0:->/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 - a # 查看IP
: lo: <LOOPBACK,UP,LOWER_UP> mtu qdisc noqueue state UNKNOWN group default qlen
inet 127.0.0.1/ scope host lo
valid_lft forever preferred_lft forever
: eth0@if25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc noqueue state UP group default link-netnsid
inet 172.17.0.2/ 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 *: *:* users:(("nginx",pid=,fd=))
LISTEN *: *:* users:(("nginx",pid=,fd=))
明显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 *: *:* users:(("nginx",pid=,fd=))
LISTEN *: *:* users:(("nginx",pid=,fd=))
LISTEN *: *:* users:(("fdfs_trackerd",pid=,fd=))

使用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 , 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: # 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: -p : -p : fastdfs:latest storage
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2c75062a1666 fastdfs:latest "/home/fastdfs.sh st…" hours ago Up hours /tcp, 0.0.0.0:->/tcp, /tcp, 0.0.0.0:->/tcp storage

进入storage容器

# docker exec -it storage /bin/bash
# yum -y install net-tools
# yum -y install telnet
# yum -y install initscripts
# ip - a
: lo: <LOOPBACK,UP,LOWER_UP> mtu qdisc noqueue state UNKNOWN group default qlen
inet 127.0.0.1/ scope host lo
valid_lft forever preferred_lft forever
: eth0@if27: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc noqueue state UP group default link-netnsid
inet 172.17.0.3/ 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 *: *:* users:(("fdfs_trackerd",pid=,fd=))
LISTEN *: *:* users:(("nginx",pid=,fd=))
LISTEN *: *:* users:(("fdfs_storaged",pid=,fd=))
LISTEN *: *:* users:(("nginx",pid=,fd=))
注: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 - pid 再 # ./fdfs_storaged start 即可
用测试程序测试服务可用性(上传文件到storage容器)
# docker exec -it tracker /bin/bash
# echo hello world > /opt/.txt
# fdfs_test /etc/fdfs/client.conf upload /opt/.txt
打印如下信息即认为测试通过
This is FastDFS client test program v5. Copyright (C) , 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. [-- ::] DEBUG - base_path=/fastdfs/storage/products, connect_timeout=, network_timeout=, tracker_server_count=, anti_steal_token=, anti_steal_secret_key length=, use_connection_pool=, g_connection_pool_max_idle_time=3600s, use_storage_id=, storage server id count: tracker_query_storage_store_list_without_group:
server . group_name=, ip_addr=172.17.0.3, port= group_name=group0, ip_addr=172.17.0.3, port=
storage_upload_by_filename
group_name=group0, remote_filename=M00///rBEAA11kzl6ASXZWAAAADK8IOy0581.txt
source ip address: 172.17.0.3
file timestamp=-- ::
file size=
file crc32=
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///rBEAA11kzl6ASXZWAAAADK8IOy0581_big.txt
source ip address: 172.17.0.3
file timestamp=-- ::
file size=
file crc32=
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//
# cat rBEAA11kzl6ASXZWAAAADK8IOy0581.txt
hello world

fastdfs通过docker安装的更多相关文章

  1. docker安装fastdfs单机版

    docker search fastdfs INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED docker.io docker.io/season/fas ...

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

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

  3. docker安装部署、fastDFS文件服务器搭建与springboot项目接口

    一.docker安装部署 1.更新yum包:sudo yum update 2.安装需要的软件包,yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动 ...

  4. Docker安装各种服务

    一. centos7设置固定IP 查看当前正在使用的网络情况 [root@localhost ~]# nmcli dev status 显示情况 : DEVICE TYPE     STATE   C ...

  5. 理解Docker(1):Docker 安装和基础用法

    本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...

  6. docker安装

    系统要求:需要一个64位的centos7操作系统和版本3.10或更高版本的Linux内核 开始安装: uname -r   //查看内核版本yum -y update //更新系统更新到最新 #安装d ...

  7. 2. Docker - 安装

    一.Docker介绍 1. Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上, 也可以实现虚拟化. 容器时完全使用沙 ...

  8. Docker 安装部署

    Docker学习笔记 一.Ubuntu Docker 安装 (1).获取最新版本Docker安装包 lyn@lyn:/data/docker$ sudo wget -qO- https://get.d ...

  9. docker 安装

    Docker使用了一种叫AUFS的文件系统,这种文件系统可以让你一层一层地叠加修改你的文件,最底下的文件系统是只读的,如果需要修改文件,AUFS会增加一个可写的层(Layer),这样有很多好处,例如不 ...

随机推荐

  1. ActiveMQ Queue vs Topic vs VirtualTopic

    之前写过一篇文章讨论VirtualTopic,但觉得不够透彻,这里再根据实验结果进行一次横向对比破除模糊和选择困难症. 文章中核心对比要素是:消息副本和负载均衡 Queue的特点和优势 ActiveM ...

  2. 笔谈OpenGL ES(一)

    现在图形类.视频类app越来越多,学习OpenGL ES是很有必要的,作为程序员是有必要做技术积累的.现在做播放器开发的工作,正好也涉及这块,那就好好学一学. CSDN上有套教程不错,OpenGL E ...

  3. uWSGI+django+nginx的工作原理流程与部署历程

    一.前言献给和我一样懵懂中不断汲取知识,进步的人们. 霓虹闪烁,但人们真正需要的,只是一个可以照亮前路的烛光 二.必要的前提2.1 准备知识 django一个基于python的开源web框架,请确保自 ...

  4. CentOS7.x-lnmp环境下安装Discuz论坛

    1.安装lnmp.这里采用一键安装的包 yum -y install wget wget http://soft.vpser.net/lnmp/lnmp1.6-full.tar.gz 2.加压安装ln ...

  5. array_push

    array_push() 函数向第一个参数的数组尾部添加一个或多个元素(入栈),然后返回新数组的长度. 该函数等于多次调用 $array[] = $value. 1:即使数组中有字符串键名,您添加的元 ...

  6. python的time模块和datetime模块

    1. 将当前时间转成字符串 strftime 方法,并输出 import datetime # 获取当前时间 datetime.datetime.now() print(datetime.dateti ...

  7. C++ 谓词(predicate) 与 仿函数 ( functor (function object))

    谓词与函数对象 谓词 predicate C++ 标准定义谓词如下: The Predicate parameter is used whenever an algorithm expects a f ...

  8. 使用virtualbox安装unbuntu开启共享文件夹时遇到的权限问题

    在安装完虚拟机之后,开启文件夹共享,发现只能用root进行访问,个人帐号无权限: cust@hqjia-desktop:/media$ ll drwxr-xr-x 4 root root 4096 2 ...

  9. notepad++ 调整行间距

    在“设置”-“语言格式设置”里面,找到style里面的Line number margin一项,调整字体大小就可以调整左边标号的大小,然后文本内容的行间距即可任意调整.

  10. C#技巧与解析(部分)

    DesignMode 以下项目在设计器界面,需判断DesignMode OnPaint(e)/Form_Paint 自定义控件中需要特殊方法进行判断,如下: public partial class ...