安装前准备

# 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. gitignore文件不生效

    git rm -r --cached . git add . git commit -m 'update .gitignore'

  2. (在客户端)https抓包解密

    (一)原理分析 https的数据包是用对称秘钥(https协议协商出来的随机数)加密后的密文. 对称秘钥在传输线路上是密文的(被非对称加密过),但是在client.server端是明文的(因为要用于加 ...

  3. JSP页面嵌套c:forEach

    做java web项目有时候会需要在页面使用嵌套<c:forEach>遍历一个List,但是嵌套很容易忽略一些东西导致出错 后台代码: List<Map<String, Obj ...

  4. 更新yum源并重建缓存

    原文连接 1)下载wget yum install -y wget 2)备份默认的yum mv /etc/yum.repos.d /etc/yum.repos.d.backup 3)设置新的yum目录 ...

  5. Linux kernel启动选项(参数)

    在Linux中,给kernel传递参数以控制其行为总共有三种方法: 1.build kernel之时的各个configuration选项. 2.当kernel启动之时,可以参数在kernel被GRUB ...

  6. Wireshark 分析Linux SSh 远程登录延迟问题

    1.PuTTy远程登录延迟的分析 现象问题描述:在使用kali linux 的时候喜欢在后台运行而在Windows主机系统上安装PuTTY来实现远程登录 发现每次输入密码的时候会存在延迟10s的情况, ...

  7. prometheus 告警规则

    GitHub网址1 https://github.com/samber/awesome-prometheus-alerts 网址2 https://awesome-prometheus-alerts. ...

  8. 源码解读之File

    文件和目录路径名的抽象表示形式. 我们知道,对于不同的操作系统,文件路径的描述是不同的 比如 windows平台:用\ linux平台:用/    四个构造方法   API: 文件自身属性读取  创建 ...

  9. Codeforces J. A Simple Task(多棵线段树)

    题目描述: Description This task is very simple. Given a string S of length n and q queries each query is ...

  10. test20190827 NOIP2019 模拟赛

    100+100+50=250.最后那道期望题需要用另外的方式统计. 精灵加护 ljss 被 M 个敌人打倒在地上啦!每个敌人有一个威力值 bi.但是他手中还拥有 N 把武器!每把武器有一个威力值 ai ...