Difference between revisions of "APITestPage"

From FriendlyELEC WiKi
Jump to: navigation, search
(updated by API)
(updated by API)
(26 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[NanoPi R2S/zh|查看中文]]
+
[[Getting Started with OpenMediaVault|English]]
 
+
==OpenMediaVault版本信息==
==Introduction==
+
* OS: Debian 12<br />
[[File:NanoPi R2S-1.jpg|thumb|frameless|250x250px|Overview]]
+
* OpenMediaVault: 7.0.5-1 (Sandworm)<br />
[[File:NanoPi R2S_TOP.jpg|thumb|frameless|250x250px|Front]]
+
* Docker: 26.0.1<br />
[[File:NanoPi R2S-BOT.jpg|thumb|frameless|250x250px|Back]]
+
* Others: 已安装OMV-Extras软件包<br />
[[File:NanoPi_R2S-case1.jpg|thumb|frameless|250x250px|Case]]
+
==Earlier version OpenMediaVault==
[[File:R2sc-02.jpg|thumb|frameless|250x250px|Case]]
+
[[Getting Started with OpenMediaVault6/zh|OpenMediaVault6]]
[[File:R2sc-03.jpg|thumb|frameless|250x250px|Case]]
+
==OpenMediaVault运行界面==
[[File:R2sc-04.jpg|thumb|frameless|250x250px|Case]]
+
[[File:Openmediavault7-zh.png|600px]]
[[File:R2sc-05.jpg|thumb|frameless|250x250px|Case]]
+
==支持的平台==
* The NanoPi R2S(as "R2S") is an open source platform with dual-Gbps Ethernet ports designed and developed by FriendlyElec for IoT applications.
+
* RK3328<br />
* The NanoPi R2S uses the RK3328 SoC. It has two Gbps Ethernet ports and 1G DDR4 RAM. FriendlyElec ported an OpenWrt system for it. It works with Docker CE. It is a good platform for developing IoT applications, NAS applications =etc.
+
* RK3399<br />
 
+
* RK3568<br />
==Hardware Spec==
+
* RK3588<br />
* CPU: Rockchip RK3328, Quad-core Cortex-A53
+
==查看IP地址==
* DDR4 RAM: 1GB         
+
由于主机名默认为开发板的型号, 所以可以使用ping命令来获得IP地址,例如CM3588,可以用命令:
* Network:
+
<syntaxhighlight lang="bash">
**Internal 10/100/1000M Ethernet Port x 1
+
ping CM3588
**USB3.0 converted 10/100/1000M Ethernet Port x 1<br />
+
</syntaxhighlight>
* USB2.0 Host: Type-A x1
+
==登录OpenMediaVault网页后台==
* MicroSD Slot x 1
+
在网页浏览器输入开发板的IP地址, 网页登录帐号默认为:
* MicroUSB: power input and USB Slave
+
<syntaxhighlight lang="bash">
* Debug Serial Port: 3.3V TTL, 3-pin 2.54mm pitch connector, 1500000 bauds
+
用户名: admin
* LED: LED x 3
+
密码: openmediavault
* KEY: KEY x 1 programmable
+
</syntaxhighlight>
* PC Size: 55.6 x 52mm
+
==设置网页登录密码==
* Power Supply: DC 5V/2A
+
网页上点击右上角的头像,选择 “更改密码”
* Temperature measuring range: 0℃ to 80℃
+
==设置网页超时时间==
* OS/Software: U-boot,Ubuntu-Core,OpenWrt <br />
+
进入 '''系统 -> 工作台''',设置"自动登出"时间。
 +
==通过ssh登录==
 +
<syntaxhighlight lang="bash">
 +
ssh pi@YourIPAddress
 +
</syntaxhighlight>
 +
pi用户的初始密码为 pi
 +
==创建root用户==
 +
创建root用户并加入root和ssh组:
 +
<syntaxhighlight lang="bash">
 +
sudo passwd root
 +
sudo gpasswd -a root root
 +
sudo gpasswd -a root _ssh
 +
</syntaxhighlight>
 +
以后就可以用root用户登录ssh:
 +
<syntaxhighlight lang="bash">
 +
ssh root@IPAddress
 +
</syntaxhighlight>
 +
==硬盘挂载==
 +
(注:如果硬盘之前已经初始化,无需重新擦除,RAID可以得到保留,直接挂载即可)<br />
 +
本章节所介绍的两种Raid配置的区别:
 +
* MD RAID:性能更好,因为它在并行写入和读取分块方面做得更好。
 +
* Btrfs RAID:数据安全性更好,因为校验和使其能够确定块的哪个副本出错,当只有一个副本出错时,并且它能够判断两个副本是否都有问题。
 +
更多内容请参考:[https://docs.openmediavault.org/en/latest/administration/storage/raid.html]
 +
===第一步:清除磁盘===
 +
进入 '''存储器 -> 磁盘''',选中你的存储器,点击“擦除"图标进行擦除 (注意备份你的数据),一般选“快速”即可。<br />
 +
如果磁盘无法擦除,你需要先移除此磁盘上的共享文件夹并取消挂载。
 +
===第二步:配置软RAID===
 +
(注: 不支持USB 接口的硬盘,OpenMediaVault创建RAID的页面上不会列出USB接口的存储设备)
 +
====方案1: MD RAID====
 +
进入 '''存储器 -> 多重装置''',点击'''“+”'''图标,选择RAID级别,应用即可。<br />
 +
进入 '''存储器 -> 文件系统''',点击'''“+”''',类型建议选择'''"BTRFS"''',选择Single并钩选你的存储设备,如果在上一步中创建了RAID,就选择设备名为 /dev/md 开头的设备。<br />
 +
格式化完成后,OpenMediaVault 将提示您选择要挂载的文件系统。
 +
====方案2:Btrfs RAID====
 +
进入 '''存储 -> 文件系统''',点击 '''"+"''' 图标,选择 '''"BTRFS"''',选择 RAID 级别,选择您的磁盘,然后保存设置。<br />
 +
格式化完成后,OpenMediaVault 将让您选择要挂载的文件系统,它不会列出所有磁盘,因此您应选择以 /dev/nvme 开头的驱动器。
 +
==创建共享文件夹==
 +
进入'''存储器 -> 共享文件夹''',添加'''"+"'''图标创建2个文件夹,分别为 nfs和 samba,我们接下来将用这些文件夹来测试 nfs和samba共享。<br />
 +
(注:如果硬盘存在之前创建的共享文件夹,按原来的名字重新创建即可,数据会得到保留)
 +
==创建NAS用户==
 +
Debian系统的用户或通过命令行创建的Linux会缺少诸如samba之类的权限,因此这里推荐使用OpenMediaVault界面创建一个用户用于访问samba和nfs共享,这里我会创建一个名为nasuser的用户和组:<br />
 
<br />
 
<br />
* '''Network Transmission Rates'''
+
点击'''用户 -> 用户组''',点击 '''"+"''' 图标创建一个名为 nasuser 的用户组。<br />
::{| class="wikitable"  
+
点击'''用户 -> 用户''',点击 '''"+"''' 图标后创建一个名为 nasuser,Shell选择/usr/sbin/nologin, 用户组钩选 nasuser和users的用户。
|-
+
==创建Samba共享==
! width=100px style="background: Light grey; color: black" |
+
点击'''服务 -> SMB/CIFS -> 设置''', 钩选最上面的 "已启动", 最低协议版本选择 "SMB1",然后点 "保存"<br />
! width=150px style="background: Light grey; color: black" align="center" | TX
+
<br />
! width=150px style="background: Light grey; color: black" align="center" | RX         
+
点击'''服务 -> SMB/CIFS -> 共享''', 点击 '''"+"''' ,在"Shared folder“处选择要共享的文件夹,这里我选择samba文件夹。<br />
|-
+
<br />
|WAN      ||align="center" | 941 Mbps  ||align="center" |  941 Mbps 
+
测试访问: <br />
|-
+
在Mac系统下右击Finder,选择连接服务器后输入 smb://YourIPAddress(换成真实IP),会弹出验证对话框,输入用户名nasuser以及密码即可以访问。
|LAN      ||align="center" | 941 Mbps  ||align="center" |  941 Mbps 
+
==创建NFS共享==
|-
+
点击"服务" -> "NFS" -> "设置", 钩选最上面的 "已启动", 在"版本"一栏中,钩选所有版本包括“NFSv2”,然后点 "保存"并应用设置;<br />
|Notes:  ||colspan="2" |  1. test utility: iperf <br /> 2. use indepedent IP address section and test with a PC in simplex communication mode
+
<br />
|}
+
点击"服务" -> "NFS" -> "共享", 点击 '''"+"''' ,在"Shared folder“处选择要共享的文件夹,这里我选择 nfs 文件夹。在客户端一栏中输入 192.168.1.0/24 (换成真实网段,或指定仅允许访问的IP),权限处选择 "读/写",在扩展选项中输入:  
 
+
<syntaxhighlight lang="bash">
==Diagram, Layout and Dimension==
+
rw,async,insecure,no_subtree_check,all_squash,anonuid=0,anongid=0
===Layout===
+
</syntaxhighlight>
[[File:NanoPi R2S-layout.jpg |frameless|550px|NanoPi R2S Layout]]
+
然后点 "保存"并应用设置;
* '''GPIO 24-Pin Spec'''
+
===Mac下测试挂载NFS===
::{| class="wikitable"
+
命令行查看OpenMediaVault的NFS共享信息
|-
+
<syntaxhighlight lang="bash">
| style="background: PaleTurquoise; color: black" colspan="1"| '''Pin#''' || style="background: PaleTurquoise; color: black" colspan="1"| '''Name'''|| style="background: PaleTurquoise; color: black" colspan="1"| '''Linux gpio'''|| style="background: PaleTurquoise; color: black" colspan="1"| '''Pin#'''|| style="background: PaleTurquoise; color: black" colspan="1"| '''Name'''|| style="background: PaleTurquoise; color: black" colspan="1"| '''Linux gpio'''   
+
# showmount -e YourIPAddress
|-
+
Exports list on YourIPAddress:
|1    || SYS_3.3V              ||    ||2    || VDD_5V              ||
+
/export                             192.168.1.0/24
|-
+
/export/nfs                         192.168.1.0/24
|3    || I2C0_SDA / GPIO2_D1  || 89  ||4    || VDD_5V              ||
+
</syntaxhighlight>
|-
+
在Mac上右击Finder,选择连接服务器,在地址栏输入
|5    || I2C0_SCL / GPIO2_D0  || 88  ||6    || GND                  ||
+
<syntaxhighlight lang="bash">
|-
+
nfs://YourIPAddress/export/nfs
|7    || GPIO2_A2 / IR_RX        || 66  ||8  || UART1_TX / GPIO3_A4  || 100
+
</syntaxhighlight>
|-
+
===Linux下测试挂载NFS===
|9    || GND                  ||    ||10    || UART1_RX / GPIOG3_A6 || 102
+
安装软件包
|}
+
<syntaxhighlight lang="bash">
 
+
sudo apt install nfs-common
:For more details refer to:[http://wiki.friendlyelec.com/wiki/images/5/59/SCH_NanoPi_R2S_V1.0-1912.pdf NanoPi_R2S_V1.0_1912-Schematic.pdf]
+
</syntaxhighlight>
:Dimensional Diagram:[http://wiki.friendlyelec.com/wiki/index.php/File:Dimension_NanoPi_R2S_V1.0-1912_PCB.rar NanoPi R2S PCB file in dxf format]
+
挂载
 
+
<syntaxhighlight lang="bash">
==Get Started==
+
sudo mount -t nfs YourIPAddress:/export/nfs /mnt/nfs
===Essentials You Need===
+
</syntaxhighlight>
Before starting to use your NanoPi R2S get the following items ready
+
查看状态
* NanoPi R2S
+
<syntaxhighlight lang="bash">
* MicroSD Card/TF Card: Class 10 or Above, minimum 8GB SDHC
+
# df -h | grep nfs
* MicroUSB 5V/2A power adapter
+
YourIPAddress:/export/nfs  7.3G  3.5M  6.8G    1% /mnt/nfs
* If you need to develop and compile,you need a computer that can connect to the Internet. It is recommended to install Ubuntu 20.04 64-bit system and use the following script to initialize the development environment, or use docker container: <br />
+
</syntaxhighlight>
**[https://github.com/friendlyarm/build-env-on-ubuntu-bionic How to setup the Compiling Environment on Ubuntu bionic]<br />
+
设置开机自动挂载,添加如下内容到 /etc/fstab
**[https://github.com/friendlyarm/docker-cross-compiler-novnc docker-cross-compiler-novnc]<br />
+
<syntaxhighlight lang="bash">
 
+
YourIPAddress:/export/nfs /mnt/nfs nfs defaults 0 0
 
+
</syntaxhighlight>
===TF Cards We Tested===
+
==Docker In OMV==
Refer to: [[Template:TFCardsWeTested/zh|TFCardsWeTested]]
+
===将Docker数据移动至硬盘===
{{1500000SerialPortDebugSetting}}
+
进入'''存储器 -> 共享文件夹''',添加"+"图标创建3个文件夹,分别为
===Install OS===
+
<syntaxhighlight lang="bash">
{{Downloads-RK3328|NanoPi-R2S}}
+
docker            -> Docker数据目录,在/etc/docker/daemon.json中定义
{{BurnLinuxToSD-Rockchip|NanoPi-R2S}}
+
docker-compose    -> Location of compose files
{{FriendlyWrt21|NanoPi-R2S}}
+
docker-data      -> Location of persistent container data
{{OfficialUbuntuCore|NanoPi-R2S}}
+
docker-app        -> 自用,存放Dockerfile和数据
{{FriendlyCoreRemoveQt}}
+
</syntaxhighlight>
{{OfficialDebianCore|NanoPi-R2S}}
+
进入'''服务 -> Compose''',进入设置界面,设置"Compose 文件"的Shared folder为docker-compose, 设置"Data“的Shared folder为docker-data,<br />
==Buildroot Linux==
+
{{RK3399 Buildroot Intro|NanoPi-R2S}}
+
 
<br />
 
<br />
For a more detailed description of the Buildroot system, please refer to: [[Buildroot|Buildroot]]<br />
+
进入ssh终端,输入以下命令,将docker数据移动到共享文件夹, 其中,/srv/dev-disk-by-uuid-XXYYZZ/docker是共享文件夹的绝对路径,可以在网页“存储器” -> "共享文件夹"列表中得到:
 +
<syntaxhighlight lang="bash">
 +
su root
 +
systemctl stop docker.socket docker.service
 +
mv /var/lib/docker/* /srv/dev-disk-by-uuid-XXYYZZ/docker/
 +
</syntaxhighlight>
 +
在页面上设置"Docker存储"为该docker共享文件夹的绝对路径,保存并应用后, 重启开发板。
 +
<br />GUI 上填写的最终数值:<br />
 +
<syntaxhighlight lang="text">
 +
Compose Files's Shared folder  -> on /dev/md0, docker-compose
 +
Data's Shared folder          -> on /dev/md0, docker-data
 +
Docker's Docker storage        -> on /srv/dev-disk-by-uuid-XXYYZZ/docker/
 +
</syntaxhighlight>
 +
===Docker安装nextcloud网盘===
 +
命令行界面输入以下命令即可:
 +
<syntaxhighlight lang="bash">
 +
su root
 +
cd $(readlink -f /srv/dev-disk-by-uuid-*/docker-app)
 +
mkdir nextcloud
 +
cd nextcloud
 +
mkdir data
  
==How to Compile==
+
docker run -d -p 8888:80  --name nextcloud \
{{Rockchip-DevEnv|NanoPi-R2S}}
+
    -v $PWD/data:/var/www/html --restart=always \
{{RK3328-BuildFromSource|NanoPi-R2S}}
+
    --privileged=true  arm64v8/nextcloud
{{RK3328-HWAccess|NanoPi-R2S}}
+
</syntaxhighlight>
{{RockchipMiscCustome|RK3328}}
+
完成后在网页浏览器访问http://YourIPAddress:8888/即可看到nextcloud网盘的页面,如果无法访问,建议重启一下设备。
 +
===Docker安装Filebrowser===
 +
命令行界面输入以下命令即可:
 +
<syntaxhighlight lang="bash">
 +
su root
 +
cd $(readlink -f /srv/dev-disk-by-uuid-*/docker-app)
 +
mkdir filebrowser
 +
cd filebrowser
  
{{MoreOS}}
+
docker run -d -v $(readlink -f /srv/dev-disk-by-uuid-*):/srv \
==Resources==
+
    -v $PWD/filebrowserconfig.json:/etc/config.json \
===Datasheets and Schematics===
+
    -v $PWD/database.db:/etc/database.db -p 8080:80 \
* Schematics
+
    --restart=always --name filebrowser \
** [http://wiki.friendlyelec.com/wiki/images/5/59/SCH_NanoPi_R2S_V1.0-1912.pdf NanoPi_R2S_V1.0_1912-Schematic.pdf]
+
    filebrowser/filebrowser
** [https://wiki.friendlyelec.com/wiki/images/0/0f/NanoPi-R2S-V1.1-2009-Schematic.pdf NanoPi-R2S-V1.1-2009-Schematic.pdf]
+
</syntaxhighlight>
 +
完成后在网页浏览器访问http://YourIPAddress:8080/即可看到Filebrowser的页面,默认管理员的帐号与密码都是admin。
 +
===Docker安装Jellyfin影音服务器===
 +
进入"存储器" -> "共享文件夹",添加"+"图标创建media文件夹用于存放影音资源,然后在命令行终端输入以下命令安装Jellyfin:
 +
<syntaxhighlight lang="bash">
 +
su root
 +
cd $(readlink -f /srv/dev-disk-by-uuid-*/docker-app)
 +
mkdir jellyfin
 +
cd jellyfin
 +
mkdir config cache
  
* PCB Dimensional Diagram
+
docker run -d --name jellyfin \
** [http://wiki.friendlyelec.com/wiki/index.php/File:Dimension_NanoPi_R2S_V1.0-1912_PCB.rar NanoPi_R2S_V1.0_1912 PCB file in dxf format]
+
-v $PWD/config:/config \
* Datasheet
+
-v $PWD/cache:/cache \
** RK3328 Datasheet [http://wiki.friendlyelec.com/wiki/images/d/d7/Rockchip_RK3328_Datasheet_V1.1-20170309.pdf Rockchip_RK3328_Datasheet.pdf]
+
-v $(readlink -f /srv/dev-disk-by-uuid-*/media):/media \
 +
-p 8096:8096 \
 +
--restart=always \
 +
jellyfin/jellyfin
 +
</syntaxhighlight>
 +
完成后在网页浏览器访问http://YourIPAddress:8096/即可看到Jellyfin的页面。
 +
===安装Docker可视化容器管理工具Portainer===
 +
命令行界面输入以下命令即可:
 +
<syntaxhighlight lang="bash">
 +
su root
 +
cd $(readlink -f /srv/dev-disk-by-uuid-*/docker-app)
 +
mkdir portainer
 +
cd portainer
 +
mkdir data
  
==Update Logs==
+
docker run -d \
{{RK3328-UpdateLog|NanoPi-R2S}}
+
  --name portainer \
 +
  --restart=always \
 +
  -e TZ=Asia/Shanghai \
 +
  -p 8000:8000 \
 +
  -p 9000:9000 \
 +
  -v /var/run/docker.sock:/var/run/docker.sock \
 +
  -v $PWD/data:/data \
 +
  portainer/portainer-ce:latest
 +
</syntaxhighlight>
 +
完成后在网页浏览器访问http://YourIPAddress:9000/即可看到Portainer的页面,默认管理员的帐号与密码都是admin。

Revision as of 15:40, 18 April 2024

English

1 OpenMediaVault版本信息

  • OS: Debian 12
  • OpenMediaVault: 7.0.5-1 (Sandworm)
  • Docker: 26.0.1
  • Others: 已安装OMV-Extras软件包

2 Earlier version OpenMediaVault

OpenMediaVault6

3 OpenMediaVault运行界面

Openmediavault7-zh.png

4 支持的平台

  • RK3328
  • RK3399
  • RK3568
  • RK3588

5 查看IP地址

由于主机名默认为开发板的型号, 所以可以使用ping命令来获得IP地址,例如CM3588,可以用命令:

ping CM3588

6 登录OpenMediaVault网页后台

在网页浏览器输入开发板的IP地址, 网页登录帐号默认为:

用户名: admin
密码: openmediavault

7 设置网页登录密码

网页上点击右上角的头像,选择 “更改密码”

8 设置网页超时时间

进入 系统 -> 工作台,设置"自动登出"时间。

9 通过ssh登录

ssh pi@YourIPAddress

pi用户的初始密码为 pi

10 创建root用户

创建root用户并加入root和ssh组:

sudo passwd root
sudo gpasswd -a root root
sudo gpasswd -a root _ssh

以后就可以用root用户登录ssh:

ssh root@IPAddress

11 硬盘挂载

(注:如果硬盘之前已经初始化,无需重新擦除,RAID可以得到保留,直接挂载即可)
本章节所介绍的两种Raid配置的区别:

  • MD RAID:性能更好,因为它在并行写入和读取分块方面做得更好。
  • Btrfs RAID:数据安全性更好,因为校验和使其能够确定块的哪个副本出错,当只有一个副本出错时,并且它能够判断两个副本是否都有问题。

更多内容请参考:[1]

11.1 第一步:清除磁盘

进入 存储器 -> 磁盘,选中你的存储器,点击“擦除"图标进行擦除 (注意备份你的数据),一般选“快速”即可。
如果磁盘无法擦除,你需要先移除此磁盘上的共享文件夹并取消挂载。

11.2 第二步:配置软RAID

(注: 不支持USB 接口的硬盘,OpenMediaVault创建RAID的页面上不会列出USB接口的存储设备)

11.2.1 方案1: MD RAID

进入 存储器 -> 多重装置,点击“+”图标,选择RAID级别,应用即可。
进入 存储器 -> 文件系统,点击“+”,类型建议选择"BTRFS",选择Single并钩选你的存储设备,如果在上一步中创建了RAID,就选择设备名为 /dev/md 开头的设备。
格式化完成后,OpenMediaVault 将提示您选择要挂载的文件系统。

11.2.2 方案2:Btrfs RAID

进入 存储 -> 文件系统,点击 "+" 图标,选择 "BTRFS",选择 RAID 级别,选择您的磁盘,然后保存设置。
格式化完成后,OpenMediaVault 将让您选择要挂载的文件系统,它不会列出所有磁盘,因此您应选择以 /dev/nvme 开头的驱动器。

12 创建共享文件夹

进入存储器 -> 共享文件夹,添加"+"图标创建2个文件夹,分别为 nfs和 samba,我们接下来将用这些文件夹来测试 nfs和samba共享。
(注:如果硬盘存在之前创建的共享文件夹,按原来的名字重新创建即可,数据会得到保留)

13 创建NAS用户

Debian系统的用户或通过命令行创建的Linux会缺少诸如samba之类的权限,因此这里推荐使用OpenMediaVault界面创建一个用户用于访问samba和nfs共享,这里我会创建一个名为nasuser的用户和组:

点击用户 -> 用户组,点击 "+" 图标创建一个名为 nasuser 的用户组。
点击用户 -> 用户,点击 "+" 图标后创建一个名为 nasuser,Shell选择/usr/sbin/nologin, 用户组钩选 nasuser和users的用户。

14 创建Samba共享

点击服务 -> SMB/CIFS -> 设置, 钩选最上面的 "已启动", 最低协议版本选择 "SMB1",然后点 "保存";

点击服务 -> SMB/CIFS -> 共享, 点击 "+" ,在"Shared folder“处选择要共享的文件夹,这里我选择samba文件夹。

测试访问:
在Mac系统下右击Finder,选择连接服务器后输入 smb://YourIPAddress(换成真实IP),会弹出验证对话框,输入用户名nasuser以及密码即可以访问。

15 创建NFS共享

点击"服务" -> "NFS" -> "设置", 钩选最上面的 "已启动", 在"版本"一栏中,钩选所有版本包括“NFSv2”,然后点 "保存"并应用设置;

点击"服务" -> "NFS" -> "共享", 点击 "+" ,在"Shared folder“处选择要共享的文件夹,这里我选择 nfs 文件夹。在客户端一栏中输入 192.168.1.0/24 (换成真实网段,或指定仅允许访问的IP),权限处选择 "读/写",在扩展选项中输入:

rw,async,insecure,no_subtree_check,all_squash,anonuid=0,anongid=0

然后点 "保存"并应用设置;

15.1 Mac下测试挂载NFS

命令行查看OpenMediaVault的NFS共享信息

# showmount -e YourIPAddress
Exports list on YourIPAddress:
/export                             192.168.1.0/24
/export/nfs                         192.168.1.0/24

在Mac上右击Finder,选择连接服务器,在地址栏输入

nfs://YourIPAddress/export/nfs

15.2 Linux下测试挂载NFS

安装软件包

sudo apt install nfs-common

挂载

sudo mount -t nfs YourIPAddress:/export/nfs /mnt/nfs

查看状态

# df -h | grep nfs
YourIPAddress:/export/nfs  7.3G  3.5M  6.8G    1% /mnt/nfs

设置开机自动挂载,添加如下内容到 /etc/fstab

YourIPAddress:/export/nfs /mnt/nfs nfs defaults 0 0

16 Docker In OMV

16.1 将Docker数据移动至硬盘

进入存储器 -> 共享文件夹,添加"+"图标创建3个文件夹,分别为

docker            -> Docker数据目录,在/etc/docker/daemon.json中定义
docker-compose    -> Location of compose files
docker-data       -> Location of persistent container data
docker-app        -> 自用,存放Dockerfile和数据

进入服务 -> Compose,进入设置界面,设置"Compose 文件"的Shared folder为docker-compose, 设置"Data“的Shared folder为docker-data,

进入ssh终端,输入以下命令,将docker数据移动到共享文件夹, 其中,/srv/dev-disk-by-uuid-XXYYZZ/docker是共享文件夹的绝对路径,可以在网页“存储器” -> "共享文件夹"列表中得到:

su root
systemctl stop docker.socket docker.service
mv /var/lib/docker/* /srv/dev-disk-by-uuid-XXYYZZ/docker/

在页面上设置"Docker存储"为该docker共享文件夹的绝对路径,保存并应用后, 重启开发板。
GUI 上填写的最终数值:

Compose Files's Shared folder  -> on /dev/md0, docker-compose
Data's Shared folder           -> on /dev/md0, docker-data
Docker's Docker storage        -> on /srv/dev-disk-by-uuid-XXYYZZ/docker/

16.2 Docker安装nextcloud网盘

命令行界面输入以下命令即可:

su root
cd $(readlink -f /srv/dev-disk-by-uuid-*/docker-app)
mkdir nextcloud
cd nextcloud
mkdir data
 
docker run -d -p 8888:80  --name nextcloud \
    -v $PWD/data:/var/www/html --restart=always \
    --privileged=true  arm64v8/nextcloud

完成后在网页浏览器访问http://YourIPAddress:8888/即可看到nextcloud网盘的页面,如果无法访问,建议重启一下设备。

16.3 Docker安装Filebrowser

命令行界面输入以下命令即可:

su root
cd $(readlink -f /srv/dev-disk-by-uuid-*/docker-app)
mkdir filebrowser
cd filebrowser
 
docker run -d -v $(readlink -f /srv/dev-disk-by-uuid-*):/srv \
    -v $PWD/filebrowserconfig.json:/etc/config.json \
    -v $PWD/database.db:/etc/database.db -p 8080:80 \
    --restart=always --name filebrowser \
    filebrowser/filebrowser

完成后在网页浏览器访问http://YourIPAddress:8080/即可看到Filebrowser的页面,默认管理员的帐号与密码都是admin。

16.4 Docker安装Jellyfin影音服务器

进入"存储器" -> "共享文件夹",添加"+"图标创建media文件夹用于存放影音资源,然后在命令行终端输入以下命令安装Jellyfin:

su root
cd $(readlink -f /srv/dev-disk-by-uuid-*/docker-app)
mkdir jellyfin
cd jellyfin
mkdir config cache
 
docker run -d --name jellyfin \
-v $PWD/config:/config \
-v $PWD/cache:/cache \
-v $(readlink -f /srv/dev-disk-by-uuid-*/media):/media \
-p 8096:8096 \
--restart=always \
jellyfin/jellyfin

完成后在网页浏览器访问http://YourIPAddress:8096/即可看到Jellyfin的页面。

16.5 安装Docker可视化容器管理工具Portainer

命令行界面输入以下命令即可:

su root
cd $(readlink -f /srv/dev-disk-by-uuid-*/docker-app)
mkdir portainer
cd portainer
mkdir data
 
docker run -d \
  --name portainer \
  --restart=always \
  -e TZ=Asia/Shanghai \
  -p 8000:8000 \
  -p 9000:9000 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v $PWD/data:/data \
  portainer/portainer-ce:latest

完成后在网页浏览器访问http://YourIPAddress:9000/即可看到Portainer的页面,默认管理员的帐号与密码都是admin。