Appearance
第二十二期 Docker:Nextcloud 网盘的一键安装
本期视频我们要安装开源的网盘系统 Nextcloud,我们会使用 Portainer 的 Stack 将 nextcloud 一键部署在 Docker 容器中。安装过程会搭配第二十一期视频分享的 MariaDB 数据库,如果你还不了解如何搭建数据库环境,请先回看之前的视频。
💖 Nextcloud 值得被尊重
Nextcloud 是一个开放源代码项目,由 ownCloud 项目的原作者 Frank Karlitschek 在 2016 年从 ownCloud 创建分支而来。 任何人都可以免费安装放心使用,绝无任何费用和版权问题。
对待无私的开源项目,我们理应尊重和包容,如果你在使用中发现任何问题, 最佳的处理方式不是到处留言“抱怨它不好”,而是应该查看官方文档是否提供了解决方案,或者去项目主页把问题反馈给开发团队。
视频地址
Nextcloud Stack (docker-compose)
注意
在 Portainer 中创建 Stack 之前,请先添加一个名为 mynet
的网络。
如果你使用的是 ARM 架构的 NAS,比如树莓派。应该根据硬件架构,显式的指定镜像标签,比如:linuxserver/nextcloud:arm64v8-latest
或 linuxserver/nextcloud:arm32v7-latest
。
yaml
---
version: "2"
services:
nextcloud:
image: linuxserver/nextcloud
container_name: nextcloud
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai
volumes:
- /path/to/appdata:/config
- /path/to/data:/data
networks:
- mynet
ports:
- 443:443
restart: unless-stopped
networks:
mynet:
external:
name: mynet
常见问题
一、PUID 和 PGID 是干什么的?
LinuxServer 维护的 Docker 镜像都有 PUID
和 PGID
这两个环境变量,他们主要用来设置挂载到容器中的存储的所有权。
默认情况下,挂载到容器上的存储会以 root 用户的身份写入文件,这会使得主机上的普通用户没有权限去读写这些文件。为了让主机上的特定用户能够读写挂载到容器中的存储,可以将用户或组的 ID 通过 PUID
和 PGID
这两个环境变量进行指定。设置以后,容器中的程序就会以所设置的用户身份在挂载的存储上写入数据了。
二、OMV 如何查看用户 ID 和用户组 ID ?
在终端中使用直接输入 id
,即可查看当前登录终端用户的ID以及加入的用户组的ID信息。
shell
herald@omv5:~$ id
uid=1000(herald) gid=100(users) groups=100(users),27(sudo),115(ssh),118(docker)
使用 id + 用户名
可以查看特定用户的ID以及加入的用户组ID信息。
shell
herald@omv5:~$ id admin
uid=998(admin) gid=100(users) groups=100(users),997(openmediavault-admin)
三、https访问网盘浏览器提示链接不安全
我们安装的网盘使用的不是由受信任的证书机构签发的证书,而是自签名证书,因此浏览器会弹出不安全的提示。 SSL/TLS 证书的作用主要有两个方面,一个是加密 http 链接,让数据加密传输,避免被恶意截取或篡改。 其次就是能够验证我们所访问的是真实的,而不是仿冒的网站。 因为 Nextcloud 部署在我们自己的局域网中,使用我们自己签发的 SSL/TLS 证书,因此不存在不信任和伪造仿冒的情况, 大可放心忽略掉浏览器的安全提示。
如果你只是不想看到这个安全提示,可以为内网的域名(比如 omv5.local)创建一个自签名的证书,替换掉 nextcloud
共享文件夹中的 config/keys
中的 cert.key
和 cert.crt
,然后将 cert.crt
安装到系统的 受信任的根证书办法机构
中。