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: , 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安装的更多相关文章
- docker安装fastdfs单机版
docker search fastdfs INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED docker.io docker.io/season/fas ...
- docker安装fastdfs与java客户端测试
一.docker 安装FastDFS 1.拉取镜像 docker pull morunchang/fastdfs 2.创建并启动tracker容器 docker run -d --name=track ...
- docker安装部署、fastDFS文件服务器搭建与springboot项目接口
一.docker安装部署 1.更新yum包:sudo yum update 2.安装需要的软件包,yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动 ...
- Docker安装各种服务
一. centos7设置固定IP 查看当前正在使用的网络情况 [root@localhost ~]# nmcli dev status 显示情况 : DEVICE TYPE STATE C ...
- 理解Docker(1):Docker 安装和基础用法
本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...
- docker安装
系统要求:需要一个64位的centos7操作系统和版本3.10或更高版本的Linux内核 开始安装: uname -r //查看内核版本yum -y update //更新系统更新到最新 #安装d ...
- 2. Docker - 安装
一.Docker介绍 1. Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上, 也可以实现虚拟化. 容器时完全使用沙 ...
- Docker 安装部署
Docker学习笔记 一.Ubuntu Docker 安装 (1).获取最新版本Docker安装包 lyn@lyn:/data/docker$ sudo wget -qO- https://get.d ...
- docker 安装
Docker使用了一种叫AUFS的文件系统,这种文件系统可以让你一层一层地叠加修改你的文件,最底下的文件系统是只读的,如果需要修改文件,AUFS会增加一个可写的层(Layer),这样有很多好处,例如不 ...
随机推荐
- python多进程并行代码
from multiprocessing import Process import sys, os import time def timetask(string): while True: pri ...
- MySQL Binlog--事务日志和BINLOG落盘参数对磁盘IO的影响
参数说明 innodb_flush_log_at_trx_commit和sync_binlog 两个参数是控制MySQL 磁盘写入策略以及数据安全性的关键参数,不同参数设置对磁盘IO影响不同. 参数i ...
- springboot使用过滤器Filter
先创建过滤器配置类: ## 引入的包部分省略... @Configuration public class FilterConfig { @SuppressWarnings({"rawtyp ...
- 大数据技术之Hadoop3.1.2版本HA模式
大数据技术之Hadoop3.1.2版本HA模式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Hadoop的HA特点 1>.主备NameNode 2>.解决单点故障 ...
- Python入门篇-基础数据类型之整型(int),字符串(str),字节(bytes),列表(list)和切片(slice)
Python入门篇-基础数据类型之整型(int),字符串(str),字节(bytes),列表(list)和切片(slice) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Py ...
- 微博MySQL优化之路
数据库是所有架构中不可缺少的一环,一旦数据库出现性能问题,那对整个系统都回来带灾难性的后果.并且数据库一旦出现问题,由于数据库天生有状态(分主从)带数据(一般还不小),所以出问题之后的恢复时间一般不太 ...
- 4.Linq to Xml
目录 1.Linq to Xml函数构造方法 2.创建包含文本节点的Xml文档 3.保存和加载Xml 4.处理Xml片段 5.从数据库中生成XML 1.Linq to Xml函数构造方法 Linq t ...
- vm.$attrs与inheritAttrs详解
1. inheritAttrs 在vue官网的解释如下 个人理解:父组件A上引入子组件B,在B子组件上加上一些属性(class.style除外),这些属性能否在子组件B的根元素上继承,默认值为true ...
- 在eclipse运行一个项目报端口被占的问题
1.端口被占问题解决方法. 我们运行javaweb项目的时候,如果不幸你的项目出现了上图的那种情况,不要慌,仅仅是端口被占了而已,只需要打开你tomcat里面的bin里面的shutdown.bat即可 ...
- 关于List集合中元素排序问题
问题描述: 有一个list集合,其中元素是Student对象,根据student的age排序. Student对象 /** * description * * @author 70KG * @date ...