我希望这是提出这个问题的正确地方。
我的问题如下:我家的服务器上有一个 Ubuntu Server 22.04.2,其中运行着 docker。docker 容器我在跑Nextcloud在另一个容器中运行无纸化-ngx.现在我想通过 nextcloud 从 paperless 访问我的扫描文件。
到目前为止我尝试过FTP服务器通过 FTP 将我的 Paperless-ngx 存档目录作为外部存储添加到 nextcloud。我认为这行不通,因为 docker 卷没有保存在我的个人资料中,而是保存在系统(?)文件中。所以我无法使用我的个人资料登录访问该目录,而且尝试以 root 用户身份登录也行不通。
接下来,我尝试创建一个软/符号链接使用
ln -s /<path to directory> /<path to directory>
。链接有效,但我也无法使用 Proftpd 在 nextcloud 上创建外部存储。我不太清楚为什么它不起作用,但我认为这是因为链接目录具有与原始目录相同的根设置(我无法更改),因此无法使用 FTP。最后,我尝试使用软链接从我的 paperless 目录直接链接到我的 nextcloud 目录。我可以在终端中看到该目录,但当我尝试在 nextcloud 中访问它时,它没有显示出来。
我对使用 Ubuntu 服务器和 Docker 容器还很陌生,因此我可能在此过程中做出了一些愚蠢的决定。我是否可以做些不同的事情来让它工作?或者我的“解决方法”根本不可行?如果是这样:有没有简单的解决方案来实现这个功能?
答案1
最简单的方法(用于家庭实验室)是使用Docker 绑定挂载用于持久存储。
官方的 Nextcloud 镜像甚至有一个描述此内容的部分(在持久数据下)。
使用持久卷运行配置和数据所需命令的示例如下:
$ docker run -d \
-p 8080:80 \
-v /path/to/appdata:/var/www/html/config \
-v /path/to/data:/var/www/html/data \
nextcloud
这里,/path/to/appdata
和/path/to/data
需要替换为您希望此持久存储所在的文件夹的实际完整路径。
然后,您可以/path/to/data
使用相同的方法将该文件夹映射到另一个容器,从而允许多个容器和主机文件系统本身之间直接共享该文件夹。