Logo 分享测试

相册

好嘞,我给你准备三套东西

  1. ✅ 完整文档版(适合你 Obsidian / Nextra / Astro 知识库)
  2. ✅ Markdown 版(你直接复制就能存档)
  3. ✅ 自动化脚本(美国服务器导出 + 群晖导入 + compose 启动)

另外,针对你的情况,我会处理好TAG 为 none 的镜像问题,这种情况要给镜像打 tag,否则 docker save 不好管理。


✅ 一、最终推荐 TAG 规范(先在美国服务器执行)#

你当前有两个 <none>

ghcr.io/immich-app/postgres <none>
valkey/valkey <none>

我建议给它们加上合适 tag:

docker tag 178719aeb38d ghcr.io/immich-app/postgres:14-vector
docker tag 84be4d718bb5 valkey/valkey:8

打完后,docker images 会变成:

ghcr.io/immich-app/postgres  14-vector  178719aeb38d
valkey/valkey                8          84be4d718bb5

这样后续导出更规范。


✅ 二、完整文档版(部署教程)#

以下为你知识库准备的正式文档,可直接保存到 Obsidian、Astro、Nextra 中。


✅ Immich 镜像离线部署教程(美国服务器 pull,国内群晖部署)#

本教程适用于网络受限(例如国内群晖/笔记本无法访问 Docker Hub、GitHub Container Registry)时,通过海外服务器拉取镜像,随后离线导入国内设备进行部署。


一、在海外服务器拉取镜像#

在美国服务器中进入 Immich 目录:

cd /root/immich-Nov
docker compose pull

确认镜像已经拉取:

docker images | grep immich

二、为无 TAG 镜像补全标签(重要)#

若出现 <none> 标签镜像,需要补 tag:

docker tag 178719aeb38d ghcr.io/immich-app/postgres:14-vector
docker tag 84be4d718bb5 valkey/valkey:8

三、将所有 Immich 镜像打包导出#

docker save \
  ghcr.io/immich-app/immich-server:v2 \
  ghcr.io/immich-app/immich-machine-learning:v2 \
  ghcr.io/immich-app/postgres:14-vector \
  valkey/valkey:8 \
  -o immich-images.tar

生成的文件约 4~5GB。


四、将镜像包传输到群晖 NAS#

如果群晖启用了 SSH:

scp immich-images.tar admin@群晖IP:/volume1/docker/

目录依据实际情况可调整。


五、在群晖导入镜像#

登录群晖:

ssh admin@群晖IP
docker load -i /volume1/docker/immich-images.tar

成功后会显示:

Loaded image: ghcr.io/immich-app/immich-server:v2
Loaded image: ghcr.io/immich-app/immich-machine-learning:v2
Loaded image: ghcr.io/immich-app/postgres:14-vector
Loaded image: valkey/valkey:8

六、在群晖部署 Immich#

.envdocker-compose.yml 也从美国服务器复制过来:

scp .env docker-compose.yml admin@群晖IP:/volume1/docker/immich/

然后在群晖:

cd /volume1/docker/immich
docker compose up -d

无需 pull,镜像已经本地导入。


✅ 部署完成#

群晖访问:

http://群晖IP:2283

Immich 即可正常使用。


✅ 三、Markdown 版(你可直接复制到知识库)#

# Immich 离线部署全流程(海外服务器 pull,国内群晖部署)

## 1. 在海外服务器补全无标签镜像

```bash
docker tag 178719aeb38d ghcr.io/immich-app/postgres:14-vector
docker tag 84be4d718bb5 valkey/valkey:8

2. 导出全部 Immich 镜像#

docker save \
  ghcr.io/immich-app/immich-server:v2 \
  ghcr.io/immich-app/immich-machine-learning:v2 \
  ghcr.io/immich-app/postgres:14-vector \
  valkey/valkey:8 \
  -o immich-images.tar

3. 将镜像传到群晖#

scp immich-images.tar admin@群晖IP:/volume1/docker/

4. 群晖导入镜像#

docker load -i /volume1/docker/immich-images.tar

5. 拷贝 compose 文件#

scp .env docker-compose.yml admin@群晖IP:/volume1/docker/immich/

6. 群晖部署 Immich#

cd /volume1/docker/immich
docker compose up -d

---

# ✅ 四、自动化脚本(含导出+导入+部署)

## ✅ 脚本1:美国服务器导出镜像 `export-immich.sh`

```bash
#!/bin/bash
set -e

echo "Fixing tags for untagged images..."
docker tag 178719aeb38d ghcr.io/immich-app/postgres:14-vector || true
docker tag 84be4d718bb5 valkey/valkey:8 || true

echo "Exporting Immich docker images..."

docker save \
  ghcr.io/immich-app/immich-server:v2 \
  ghcr.io/immich-app/immich-machine-learning:v2 \
  ghcr.io/immich-app/postgres:14-vector \
  valkey/valkey:8 \
  -o immich-images.tar

echo "Done! File: immich-images.tar"

✅ 脚本2:群晖自动导入并部署 import-immich.sh#

#!/bin/bash
set -e

echo "Importing docker images..."
docker load -i immich-images.tar

echo "Starting Immich..."
docker compose up -d

echo "Immich deployed successfully!"

✅ 要不要我帮你:#

✅ 帮你把以上内容拼成一篇适合你知识库风格的 Astro/Nextra 文档布局?
✅ 或者帮你做一个标准的 /docs/immich-offline-deploy.md

你说一声我就给你生成。