运维 | 使用 Docker Compose 搭建 Lsky Pro 图床 | Docker
简介
Lsky Pro 是一个用于在线上传、管理图片的图床程序,中文名:兰空图床,你可以将它作为自己的云上相册,亦可以当作你的写作贴图库。
兰空图床始于 2017 年 10 月,最早的版本由 ThinkPHP 5 开发,后又经历了数个版本的迭代,在 2021 年末启动了新的重写计划并于 2022 年 3 月份发布全新的 2.0 版本。
项目地址:github.com/lsky-org/ls…
官网地址:www.lsky.pro/
文档地址:docs.lsky.pro/
Docker镜像地址:hub.docker.com/r/dko0/lsky…
PicGo插件:hellodk.cn/post/964
功能特性
- 支持
本地
等多种第三方云储存AWS S3
、阿里云 OSS
、腾讯云 COS
、七牛云
、又拍云
、SFTP
、FTP
、WebDav
、Minio
- 多种数据库驱动支持,
MySQL 5.7+
、PostgreSQL 9.6+
、SQLite 3.8.8+
、SQL Server 2017+
- 支持配置使用多种缓存驱动,
Memcached
、Redis
、DynamoDB
、等其他关系型数据库,默认以文件的方式缓存 - 多图上传、拖拽上传、粘贴上传、动态设置策略上传、复制、一键复制链接
- 强大的图片管理功能,瀑布流展示,支持鼠标右键、单选多选、重命名等操作
- 自由度极高的角色组配置,可以为每个组配置多个储存策略,同时储存策略可以配置多个角色组
- 可针对角色组设置上传文件、文件夹路径命名规则、上传频率限制、图片审核等功能
- 支持图片水印、文字水印、水印平铺、设置水印位置、X/y 轴偏移量设置、旋转角度等
- 支持通过接口上传、管理图片、管理相册
- 支持在线增量更新、跨版本更新
- 图片广场
准备工作
-
服务器
Vultr 注册:www.vultr.com/
Racknerd 注册:my.racknerd.com/ -
域名注册与解析
域名注册:www.namesilo.com
域名解析:www.cloudflare.com -
SSH 连接工具(可选,推荐)
FinalShell下载:www.hostbuf.com/t/988.html
-
反向代理工具(可选,推荐)
Nginx Proxy Manager:nginxproxymanager.com/
以上提供的链接或工具仅作为示例,具体情况请按照需使用
快速使用
下面以
CentOS
系统为例
环境搭建
- 安装常用工具包
sudo -i # 切换到root用户
yum update -y
yum install wget curl sudo vim git lsof
- 设置
SWAP
脚本(可选)
wget -O box.sh https://raw.githubusercontent.com/BlueSkyXN/SKY-BOX/main/box.sh && chmod +x box.sh && clear && ./box.sh
注意:VPS的内存如果过小,建议设置一下SWAP,一般为内存的1-1.5倍即可,可以让运行更流畅!
-
安装
Docker
环境- Docker 安装文档:docs.docker.com/engine/inst…
- Docker Compose 安装文档:docs.docker.com/compose/ins…
创建容器
/opt/docker/lsky
为例mkdir -p /opt/docker/lsky && cd /opt/docker/lsky
mkdir -p ./{conf,data,logs}
注意:后续操作中,产生的所有数据都会保存在这个目录,请妥善保存
docker-compose.yaml
version: '3'
services:
lsky-pro:
container_name: lsky-pro
image: dko0/lsky-pro
restart: always
volumes:
- ./data/html:/var/www/html #映射到本地
ports:
- 7791:80
environment:
- MYSQL_HOST=mysql
- MYSQL_DATABASE=lsky-pro
- MYSQL_USER=lsky-pro
- MYSQL_PASSWORD=lsky-pro
mysql:
image: mysql:8.0
container_name: lsky-pro-db
restart: always
environment:
- MYSQL_DATABASE=lsky-pro
- MYSQL_USER=lsky-pro
- MYSQL_PASSWORD=lsky-pro
- MYSQL_ROOT_PASSWORD=lsky-pro
volumes:
- ./data/db:/var/lib/mysql
注意:查看端口是否被占用
lsof -i:7791
docker-compose up -d
实时查看日志:
docker-compose logs -f
4. 用浏览器访问 http://ip:端口号
即可
- 查看服务器 IP:
curl ip.sb
如果需要配置域名访问,建议先配置好反向代理以及域名解析再进行初始化。如果通过
http://ip:端口号
的形式无法访问,请到服务器厂商后台将运行的端口号添加到安全组,如果服务器使用了 Linux 面板,请检查此 Linux 面板是否有还有安全组配置,需要同样将端口号添加到安全组。
更新容器
cd /opt/docker/lsky && docker-compose down
2. 备份数据(重要)
cp -r /opt/docker/lsky /opt/docker/lsky.archive
需要注意的是,
lsky.archive
文件名不一定要根据此文档命名,这里仅仅是个示例。
修改 docker-compose.yaml
中配置的镜像版本
拉取镜像
docker-compose pull lsky-pro
重新启动容器
docker-compose up -d
进阶使用
反向代理
- 使用 Nginx Proxy Manager 工具
Nginx Proxy Manager(以下简称NPM)会用到
80
、443
端口,所以本机不能占用
使用指南
初始化安装
访问网页地址,进入安装界面,按照提示进行安装即可
注意,数据库连接地址,填 docker-compose
文件里的容器名称 lsky-pro-db
提示安装成功,就可以开始使用了
管理员登录
输入前面填写的 管理员邮箱
和 密码
进行登录
系统设置
- 修改站点名称
API 接口
- 访问
接口
设置页面
- 获取
token
在线 HTTP 接口测试:www.sojson.com/httpRequest…
PicGO 插件
参考文档:www.imcharon.com/1068/
FAQ
该网页无法正常运作,显示 HTTP ERROR 503
- 检测防火墙,放行端口
CentOS
firewall-cmd --list-ports # 查看已开放的端口
firewall-cmd --zone=public --add-port=7791/tcp --permanent # 开放端口(开放后需要要重启防火墙才生效)
firewall-cmd --reload # 重启防火墙
Ubuntu & Debian
iptables -I INPUT -p tcp --dport 80 -j ACCEPT # 放行80端口
iptables -I INPUT -p tcp --dport 443 -j ACCEPT # 放行443端口
iptables -I INPUT -p tcp --dport 7791 -j ACCEPT # 放行7791端口
结尾
本期的内容就到这里,路过的小伙伴记得支持一下哦!