🚀 使用 Docker Compose 部署 squoosh
下面是一份为新手准备的Squoosh Docker Compose部署教程,它将帮你快速搭建一个安全、高效、私有化的图片压缩服务,再也不用担心在线工具的隐私泄露和文件大小限制问题了。
🎯 Squoosh简介与核心优势
Squoosh是一款由Google推出的开源图像压缩工具。它通过在浏览器本地进行图像处理,确保了用户隐私和数据安全,因为图片不会上传到任何远程服务器。
主要功能特点: * 🖼️ 多格式支持:支持压缩和转换多种主流图片格式,如JPG、PNG、WEBP等。 * ⚙️ 高效压缩:利用WebAssembly (WASM) 技术实现高效的图像压缩算法,能在保持高质量的前提下大幅减小图片文件尺寸。例如,可将一张3.24MB的图片压缩到260KB,体积减小90%。 * 🔒 隐私安全:纯本地压缩,图片不会离开你的计算机或服务器,保护隐私和数据安全。 * 📊 实时对比:提供压缩前后图片的实时对比视图,方便在图像质量和大小之间做取舍。 * 🔧 灵活调整:提供多种压缩算法和细致的调整选项。
技术亮点: Squoosh采用了现代化的Web技术栈,包括React/Preact框架,并利用WebAssembly来运行高性能的图像压缩编码器。其容器化版本让你无需配置复杂的Node.js环境即可使用。
⚙️ 一、部署前准备
-
环境要求
- 已安装 Docker 和 Docker Compose。
- 建议系统内存不少于 1GB。
- 确保服务器的 7701 端口(或你自定义的其他端口)未被占用。
-
环境检查 在终端中执行以下命令,确认Docker环境正常:
bash docker --version docker-compose --version -
创建项目目录 建议创建一个独立的目录来管理Squoosh的所有文件,这有助于日后管理和备份。
bash mkdir -p /opt/docker/squoosh cd /opt/docker/squoosh
🛠️ 二、配置Docker Compose文件
在你创建的目录下(例如 /opt/docker/squoosh),新建一个 docker-compose.yml 文件,并写入以下内容。这里以你提供的配置为基础,并参考了搜索结果的建议进行了优化。
#services:
#squoosh:
#container_name: squoosh
#ports:
#- 85:80
#image: hausen1012/squoosh:latest
#新版还给我乱码,服了,功能没有任何长进。
services:
squoosh:
container_name: squoosh
restart: unless-stopped
ports:
- 7701:8080 # 主机端口:容器端口。你可以将7701改为任何未被占用的端口。
image: dko0/squoosh:1.12.0 # 使用特定版本镜像,避免自动更新潜在问题
deploy:
resources:
limits:
#cpus: '5'
#memory: 2G
cpus: '1.0' # 限制CPU使用,可根据实际情况调整
memory: 512M # 限制内存使用,可根据实际情况调整
关键配置说明:
| 配置项 | 说明与建议 |
|---|---|
image |
使用 dko0/squoosh:1.12.0 镜像。锁定版本有助于保证稳定性。 |
ports |
"7701:8080" 表示将容器内部的8080端口映射到主机的7701端口。你可以根据需要修改主机端口(前面的7701),但容器端口(后面的8080)请保持不变。 |
restart: unless-stopped |
设置容器自动重启策略,除非手动停止,否则总是重启,保证服务可用性。 |
| 资源限制 | 建议根据实际访问量和服务器资源情况调整CPU和内存限制。 |
🚀 三、启动与验证
-
启动Squoosh服务 在
docker-compose.yml文件所在目录执行:bash docker-compose up -d-d参数代表在后台运行容器。 -
检查服务状态
bash docker-compose ps如果看到squoosh容器的状态为Up,就表示部署成功了。 -
查看实时日志(可选) 如果遇到问题,可以通过以下命令查看容器日志来排查:
bash docker-compose logs -f squoosh -
访问Squoosh Web界面 打开你的浏览器,输入
http://你的服务器IP地址:7701。- 如果一切正常,你将看到Squoosh的Web操作界面。
- 首次访问时,由于界面是英文,你可以使用浏览器的网页翻译功能(如Chrome的右键"翻译成中文")转换为中文。
🖥️ 四、使用Squoosh压缩图片
成功部署后,你就可以开始使用Squoosh来压缩和优化你的图片了。
-
上传图片:
- 点击页面中间的上传区域,或者直接将图片文件拖拽到该区域。
- Squoosh支持批量处理,你可以一次上传多张图片。
-
调整压缩设置(关键步骤):
- 图片上传后,界面会分成两栏,左侧是原图,右侧是压缩后的预览。
- 在右侧面板,你可以进行多种调整:
- 压缩方法 (Compress):点击下拉菜单选择不同的图片格式和压缩算法,例如 MozJPEG (适用于JPG)、Oxipng (适用于PNG) 或 WebP。
- 质量 (Quality):拖动滑块调整压缩质量。数值越低,文件越小,但画质也可能下降。你可以通过观察预览图和界面底部显示的压缩后文件大小来决定。
- 其他高级选项:如调整图片尺寸 (Resize)、颜色数量等。
-
下载压缩后的图片:
- 调整设置的同时,留意界面底部显示的压缩百分比和文件大小变化。
- 对效果满意后,点击右下角的 下载 按钮保存压缩后的图片到本地。
🔧 五、维护与管理
-
服务管理:
- 停止服务:
docker-compose down - 重启服务:
docker-compose restart - 查看服务状态:
docker-compose ps
- 停止服务:
-
更新Squoosh: 如果需要更新到新版本,可以执行以下步骤(请注意,更新前建议确认新版本镜像的可用性):
bash # 进入 docker-compose.yml 所在目录 docker-compose down docker-compose pull # 拉取最新镜像 docker-compose up -d -
数据备份: 由于Squoosh的处理是即时且在浏览器本地完成的,服务器端主要存储的是静态网页资源。因此,定期备份你的
docker-compose.yml文件即可。
🌐 六、进阶配置(可选)
通过域名访问(反向代理)
如果你希望通过域名(例如 squoosh.yourdomain.com)访问Squoosh,可以设置Nginx反向代理。
- 安装Nginx (若尚未安装)。
- 创建Nginx配置文件,例如
/etc/nginx/conf.d/squoosh.conf,内容如下(请替换your_domain.com为你的域名): ```nginx server { listen 80; server_name your_domain.com;location / { proxy_pass http://127.0.0.1:7701; # 转发给本地运行的Squoosh容器 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }}
3. **测试Nginx配置并重载**:bash nginx -t nginx -s reload ``` 4. 将你的域名DNS解析到服务器IP。现在,你就可以通过域名访问Squoosh了。强烈建议在此基础上为域名配置 SSL证书 (HTTPS),以提升安全性。
🐛 七、常见问题排查 (FAQ)
| 问题现象 | 可能原因与解决方法 |
|---|---|
无法访问 http://服务器IP:7701 |
1. 检查防火墙/安全组是否放行了 7701 端口。2. 确认容器是否正常运行: docker-compose ps。3. 查看容器日志: docker-compose logs squoosh。 |
| 镜像拉取失败 | 1. 检查Docker服务是否正常,网络连接是否通畅。 2. 尝试使用其他标签的镜像,例如 hausen1012/squoosh:latest。 |
| 压缩后图片质量不理想 | 1. 在Squoosh界面右侧调整 "Quality" (质量) 滑块,提高质量数值。 2. 尝试不同的 "Compress" (压缩方法/格式)。 |
| 界面是英文 | 使用浏览器的网页翻译功能(如Chrome的右键"翻译成中文")转换为中文。 |
希望这份教程能帮助你顺利完成Squoosh的部署!享受这款安全、高效、私有的图片压缩神器带来的便利吧!如果在部署过程中遇到问题,可以查阅Squoosh的 GitHub项目主页 获取更多信息。