首先安装树莓派官方系统(Raspbian),需要安装lite版的系统(桌面版系统尝试过,后续会安装失败,不能用),不清楚为什么视频教程里面的就是用的桌面版操作系统。

下载完成后需要进行解压,得到以.img结尾的文件,使用[balenaEtcher](balenaEtcher - Flash OS images to SD cards & USB drives)进行烧写系统,
也可使用树莓派官方烧写工具进行烧写系统,烧写完成后,拔出读卡器,再重新插入电脑,创建文件ssh (没有后缀名)打开树莓派的ssh。
登录路由器管理界面查看树莓派的ip地址,树莓派系统默认用户名pi,密码raspberry。
进入系统后输入:sudo passwd root 重新设置密码首先下载文件
apt-get updateapt-get install openssl libssl-dev vimwget -O - https://github.com/OpenMediaVault-Plugin-Developers/installScript/raw/master/install|sudo bash至此omv5安装完毕
浏览器输入树莓派网址(默认端口80)
omv5系统默认用户名:admin,密码: openmediavault

在openmediavault管理界面中,找到OMV-Extras,点击docker安装,安装portainer,(如果期间出现了错误,再安装一次就可以了)
打开portainer管理页面设置密码,去containers中即可看到正在运行的容器,

在树莓派shell中输入:
docker pull nextcloud 默认下载最新版本23在portainers的images中可以看到nextcloud镜像,将容器中的目录映射到树莓派系统中
docker run -d --name nextcloud -p 8080:80 -v /var/www/html:/var/www/html nextcloud在openmediavault管理页面中,找到磁盘,可以看到刚刚插入的硬盘,在文件系统中对硬盘进行挂载,格式化,创建文件系统格式,格式选择ext2或者ext3格式。

在 shell界面中/src目录下可以找到挂载的硬盘,进入目录后,用mkdir在硬盘中创建文件。
docker run -d --name nextcloud -p 8080:80 -v /srv/dev-disk-by-uuid-73f049ab-12d9-4c48-8356-da19484d7457/nextcloud:var/www/html nextcloud创建成功后shell界面就会出现一串id码
映射成功后可以在portainer中的nextcloud容器中可以看到映射成功;

使用IP地址进入nextcloud页面

如果使用windows格式的硬盘,那么会出现报错,

如果强烈使用windows格式的硬盘,在映射出来的目录里,进入config/config.php,
在最后一行加入,
'check_data_directory_permissions' => false,
在地址栏进行刷新即可
接下来要考虑连接数据库mysql,nginx ssl反向代理
docker pull postgres:latest这里未使用mysql是因为dockerhub里面的mysql官方镜像并不支持arm/v7
并没有arm的标签,所以采用了postgresql数据库。
sudo docker run -d --name=postgres -e POSTGRES_PASSWORD=123456 -p 5432:5432 postgres:latest数据库的端口是5432,密码是123456。
- run 创建并运行一个容器
- -d 后台运行
- –name 指定创建的容器的名字
- -e POSTGRES_PASSWORD=123456,设置环境变量,设置密码为123456
- -p 5433:5432,将主机的的5432端口映射到容器的5433端口
docker exec -it postgres psql -U postgres -d postgres
CREATE DATABASE nextcloud;
exit

主机名一定要写ip地址,不能写localhost
使用数据库连接工具连接了数据库之后,并没有找到nextcloud数据库,不太清楚原因,但是nextcloud能正常使用数据库。
由于ssl证书需要使用ip地址生成密钥,但是由于未来我的树莓派地址会改变,所以就不打算设置ssl了,打算只在内网使用。