DockerToolbox离线安装文件服务器fastDFS 教程
1、(联网设备)找一台linux已安装docker的联网电脑
在联网的linux上执行(执行前确认docker是否安装)拉取镜像: docker pull morunchang/fastdfs
2、(联网设备)镜像转文件的命令
执行镜像文件命令: docker save morunchang/fastdfs > /root/fastdfs.tar
将该路径下的文件 /root/fastdfs.tar,copy至待安装的电脑,例如:D:/dockerFastDFS/fastdfs.tar
3、(离线设备)复制文件到离线机器并导入
复制文件到离线机器 然后导入:docker load -i D:/dockerFastDFS/fastdfs.tar
4、要安装fastdfs电脑已经联网(忽略上述1、2、3步操作)
可直接拉取镜像: docker pull morunchang/fastdfs
5、(离线设备)启动tracke
docker run -d --name tracker --net=host morunchang/fastdfs sh tracker.sh
这时候可能还会报错,提示你已经启动过该容器了,你可以:
docker rm 你的容器id,然后再次执行上述命令
6、(离线设备)启动storage
(192.168.99.100 ip 自行替换为docker 所在容器的ip )( 此镜像不支持-p 参数)
docker run -d --name storage --net=host -e TRACKER_IP=192.168.99.100:22122 -e GROUP_NAME=group1 morunchang/fastdfs sh storage.sh
7、默认端口
nginx默认端口:8080
tracker默认端口:22122
上传后访问地址:http://192.168.99.100:8080/group1/M00/00/00/rBVb2lwPNYeAZtTLAAAXxD4H4Z8674.txt
8、端口修改(未测试)
storage 内部nginx 端口修改 以22999为例
1.进入容器内部: docker exec -it storage /bin/bash
2.修改nginx配置文件: vim /etc/nginx/conf/nginx.conf
修改 http.server.listen 8080 为 22999
sed -i 's/8080/22999/g' /etc/nginx/conf/nginx.conf
3.退出容器
exit
4.重启storage
docker restart storage
5、修改端口后访问路径:http://192.168.99.100:22999/group1/M00/00/00/rBVb2lwPNYeAZtTLAAAXxD4H4Z8674.txt
9、报错信息处理
1、停止storage后,重新启动storage,发现状态Exited(1)无法启动,查看日志
执行命令:docker logs storage
报错信息:tail: cannot open '/var/fdfs/logs/storaged.log' for reading: No such file or directory
第一种解决方法:这个报错信息在安装delron/fastdfs这个镜像时出现,各种办法尝试,未能解决,网上的解决方案是,如果重启后无法启动的话,手动
创建vi/var/fdfs/logs/storaged.log 文件即可,可自行尝试
第二种解决方法:更换为这个镜像morunchang/fastdfs,并按该教程安装,问题解决,不再出现状态Exited(1)无法启动的问题
10、设置容器自启动
1、创建容器时设置容器自动重启
docker run -d --restart=always --name 设置容器名 使用的镜像
(上面命令 --name后面两个参数根据实际情况自行修改)
# Docker 容器的重启策略如下:
--restart具体参数值详细信息:
no // 默认策略,容器退出时不重启容器;
on-failure // 在容器非正常退出时(退出状态非0)才重新启动容器;
on-failure:3 // 在容器非正常退出时重启容器,最多重启3次;
always // 无论退出状态是如何,都重启容器;
unless-stopped // 在容器退出时总是重启容器,但是不考虑在 Docker 守护进程启动时就已经停止了的容器。
2、修改已有容器,使用update
如果创建时未指定 --restart=always,可通过update 命令设置
docker update --restart=always 容器ID(或者容器名)
11、关于同网段无法访问问题
按照以下操作,映射端口,实现同一网段,可进行访问