共计 3629 个字符,预计需要花费 10 分钟才能阅读完成。
上期介绍了七牛云免费图床的搭建方法及教程,但是七牛云随着你数据量的加大,仍旧可能会有一丢丢的流量费用,所以今天 再给大家带来一款可以在自己服务器上搭建的开源图床。该图床可以: GitHub 原项目地址:https://github.com/icret/EasyImages2.0 Docker 镜像地址:https://hub.docker.com/r/ddsderek/easyimage 服务器:轻量服务器即可 域名:自备 其他环境:安装 1panel 面板,安装docker compose 环境 登录自己服务器搭建好的1panel 面板,找到系统 - 文件 然后在上方选择自己想要存放项目的位置,创建或者导入docker-compose.ymal , 这是 docker compose 的配置文件: 点击终端,运行下方命令 即可拉取镜像(注意终端位置需要和 docker-compose.ymal 路径一致): 安装完成后即可在容器中看到已经运行起来的 easyimage 项目,如果是在本地环境安装的,现在就可以直接用 IP: 自定设定的端口进行访问项目了,例如:127.0.0.1:8087 如果是在服务器中,则需要配置域名、反向代理等操作。 首先,在容器面板中我们可以看到刚才搭建的项目地址和端口是:0.0.0.0:8087 然后在 1panel 面板中找到 网站 – 创建网站,注意这里前提是安装 OpenResty,一般进入这个页面没安装就会有提示。 选择 反向代理 在批量添加域名这里添加自己的服务器 IP , 然后点击生成,下方内容会自动填充 代理地址 填入前面保存的地址和端口:0.0.0.0:8087 填写完成后点击确认 即可在网站列表中找到创建的网站 浏览器输入自己服务器 IP,即可访问创建的网站,首此打开网站会有环境检测,根据提示操作即可 首先申请证书,在 1panel 面板 中找到 网站 - 证书 、 申请 SSL 证书 输入自己要申请证书的域名,选择验证方式为 HTTP (支持自动续签免费证书) 如果域名解析没啥问题,那么证书就会申请成功,如果这里证书申请不成功,建议到域名服务商那边检查自己的 域名解析 然后 创建网站 – 反向代理 添加域名,点击生成,填写代理地址,选择自己申请的证书,点击确认,网站创建成功。 这里第一次打开网站 配置时,记得 修改 网站域名的 https、管理员的密码 安装完成后即可进行登录 至此,简单图床搭建完成。 项目本身是个开源站,所以搭建完成后所有人都可以进行图片上传和预览,不满足我们的需求,因此需要关闭部分设置,使网站仅自己可用,别人无法登录和图片上传预览 关闭页面预览功能,避免别人打开网站看到你上传的图片 可以给图片添加文字、图片水印 图片压缩,减轻服务器负担 如何下载安装配合 PicGo 和 Typora 在编辑 markdown 时自动上传文件,请移步 这篇文章,或在本站自定搜索,这里只讲 PicGo 自定义图床 打开 PicGo – 插件设置 在插件这里 搜索并安装 web-uploader 1.1.0 安装插件 或者在 github 官方插件页面 https://github.com/PicGo/Awesome-PicGo 搜索 picgo-plugin-web-uploader 下载本地安装包在右侧箭头处导入本地安装包 打开图床网站 – 设置 找到 API 调用地址 和 Token 开启图床 API 上传 在 PicGo 自定义 Web 图床 中配置: API 地址:输入自己的 API 调用地址 POST 参数名:image JSON 路径:url 自定义 Body: {“token”:” 自己的 token”} 点击保存后要 设定为默认图床 之后上传图片即可将图片上传到自己搭建的图传地址,水印、压缩都有,而且只有自己管理员登录才可进行上传、预览,测试一下: 图传广场: 因为创建网站我们用了命名卷 存储数据,所有配置和图片都会保存在 备份文件会生成在当前目录(
一、项目介绍
搭建环境:
二、搭建教程
1、基础搭建
version: '3.8' # 兼容主流 Docker 版本,支持命名卷特性
# 定义命名卷(所有数据存储在这里,Docker 统一管理,安全且易迁移)
volumes:
easyimage_config: # 存储 EasyImage 配置文件(含系统设置、水印 / 压缩规则等)
easyimage_uploads: # 存储上传的图片文件(原始图、压缩后图)
services:
easyimage:
image: ddsderek/easyimage:latest # 官方指定镜像(最新稳定版)
container_name: easyimage # 容器名称,便于管理
restart: unless-stopped # 容器异常退出时自动重启
ports:
- "8087:80" # 端口映射:主机 8087 端口 → 容器 80 端口(可修改主机端口,如 8090:80)
environment:
- TZ=Asia/Shanghai # 时区配置(避免日志时间错乱,必填)
- PUID=1000 # 运行容器的用户 ID(默认 1000,对应主机普通用户,避免权限问题)
- PGID=1000 # 运行容器的用户组 ID(与 PUID 保持一致)
- DEBUG=false # 关闭调试模式(生产环境建议 false,排查问题时可设为 true)
volumes:
# 挂载命名卷到容器内对应目录
- easyimage_config:/app/web/config # 配置文件目录 → 命名卷
- easyimage_uploads:/app/web/i # 图片存储目录 → 命名卷
# 可选:添加健康检查(确保容器正常运行)
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:80"] # 检测容器内 80 端口是否可用
interval: 30s # 每 30 秒检查一次
timeout: 10s # 超时时间 10 秒
retries: 3 # 失败 3 次后判定容器不健康
docker-compose up -d
2、配置反向代理(如果没有域名,直接这一步即可,有域名则看 下面步骤 3)
3、域名配置 + 反向代理 +https
三、图床其他
1、设置图床仅自己可以上传、预览
2、添加水印
3、图片压缩
四、配合 PicGo 自动上传图片
五、网站迁移、图片数据迁移
easyimage_config
和 easyimage_uploads
卷中,迁移服务器时只需备份这两个卷即可。备份命名卷(迁移前操作)
# 备份 easyimage_config 卷(配置文件)
docker run --rm -v easyimage_config:/source -v $(pwd):/backup alpine tar -czvf /backup/easyimage_config.tar.gz -C /source .
# 备份 easyimage_uploads 卷(图片文件)
docker run --rm -v easyimage_uploads:/source -v $(pwd):/backup alpine tar -czvf /backup/easyimage_uploads.tar.gz -C /source .
easyimage_config.tar.gz
和 easyimage_uploads.tar.gz
),将这两个文件复制到新服务器。恢复命名卷(新服务器操作)
docker-compose.yml
文件(不要运行);docker volume create easyimage_config
docker volume create easyimage_uploads
# 恢复配置卷
docker run --rm -v easyimage_config:/target -v $(pwd):/backup alpine sh -c "tar -xzvf /backup/easyimage_config.tar.gz -C /target"
# 恢复图片卷
docker run --rm -v easyimage_uploads:/target -v $(pwd):/backup alpine sh -c "tar -xzvf /backup/easyimage_uploads.tar.gz -C /target"
docker compose up -d
,数据会完全保留。