Raspberry Pi是一台微型计算机,只有女孩手掌大小,但它集成了运行操作系统所需的所有硬件,包括许多通用接口。 很多爱好者会安装各种传感器,比如摄像头、触摸屏等,让树莓派变成一个智能终端。 总而言之,这是一个非常有趣的“玩具”。 我买的树莓派是4b版本,ARM架构1.5GHz(四核)CPU,4GB LPDDR4内存,2个USB3.0和USB2.0接口,2个microHDMI接口,支持双1080P输出,千兆网口,typeC电源界面。 重量仅为46克,仅为iPhone的五分之一,相对轻巧紧凑。
闲置了一年的树莓派终于在2021年元旦假期派上了用场。 我一直使用迅雷的万客云连接硬盘,存储电影和电视剧,然后通过电视直接访问和观看电影。 但万客云定位为“矿机”,其媒体功能只需要额外增加2TB硬盘,其中一半需要腾出来用来挖币。 不过到目前为止,开采出来的虚拟币除了兑换迅雷会员之外,没有其他用途。 这1TB的空间就等于浪费了。 那么就用Raspberry Pi搭建一个家庭媒体终端+文件存储终端吧。 正好我之前买Walkman的时候(是二手卖的),购买了一张128GB的TF卡,可以作为树莓派的启动盘。 简单理解,就是系统盘。
初步计划是安装系统后通过Docker安装samba、nextcloud、nginx等软件,实现Linux服务器访问电视、电脑浏览器和手机app上的Kodi。 一旦有了想法,下一步就是实施它。
2.系统安装及远程登录
由于Raspberry Pi 4b是基于ARM的CPU,因此选择了官方的Raspbian,它是基于Debian Linux的专用于Raspberry Pi的32位系统。 下载镜像刻录工具和镜像。
通过读卡器将TF卡连接到电脑,按照烧录工具的分步说明,将系统镜像写入到TF卡中。 然后将卡安装到树莓派上,通过microHDMI线连接显示器,插上键盘和电源线,然后就会自动完成安装和启动,然后就会出现熟悉的登录界面。
毕竟树莓派是作为服务器使用的,显示器并不是必需品。 开启ssh功能后,直接扔到柜子里就可以了。
有两种方式可供选择:
1、写入卡后,在卡根目录下新建一个空的ssh文件夹;
2、登录系统后,通过sudo raspi-config进入配置界面,选择Interface Options,打开SSH
操作完成后,我们就可以在连接局域网的笔记本电脑上通过终端(Macbook)、putty、SecureCRT或者XShell来远程操作树莓派了。
3. 硬件设置
1、硬件无非是一块2T机械硬盘,由硬盘盒供电,通过USB3.0连接到树莓派,然后挂载。
这里涉及到几个命令
磁盘使用情况:df -h
磁盘分区:fdisk
分区格式:mkfs
2、分区
由于磁盘已被使用,因此已被划分为两个区域。 但由于Linux系统和Win系统的磁盘分区格式和文件系统不同,需要重新格式化。
fdisk /dev/sda
p 显示分区信息
n 创建一个新分区
w 写入分区,保存退出
q 退出而不保存
只需按照提示一步一步操作即可。 需要注意的是,w操作要谨慎使用。 如果您担心在任何步骤中出错,只需 q 退出并重新进入 fdisk。
3.格式化分区
可以通过fdisk -l /dev/sda查看当前磁盘信息
可以看到,第二个分区是Linux类型的,而第一个分区是win的NTFS类型。 这操作起来并不容易。 执行完上一步的分区后,我们通过mkfs命令进行格式化。
mkfs -t ext4 /dev/sda1
4. 安装
在Linux系统中,一切都是文件,磁盘也以文件的形式存在,即/dev/sda。 我们需要将其挂载到某个路径才能正常使用。
挂载 /dev/sda1 /home/pi/hd1
挂载 /dev/sda2 /home/pi/hd2
这两个命令的含义是将磁盘的分区1挂载到路径/home/pi/hd1。 通过访问该路径,即可使用该磁盘。 为了不用每次开机都要重新挂载,我们对这两个分区的挂载操作都是自动化的。
vi /etc/fstab
在最后追加两条记录
/dev/sda1 /home/pi/hd1 ext4 默认值,noatime 0 0
/dev/sda2 /home/pi/hd2 ext4 默认,noatime 0 0
然后重新启动 sudo restart。
4、软件安装
终于进入激动人心的软件安装阶段。 为了方便安装、卸载和运行而不影响整体操作系统,选择了docker容器,可以简单理解为虚拟机。 docker的安装应该是百度一下。 太占篇幅了,我就不写了。
1.nginx
我隐隐约约的感觉,对于我的部署来说,nginx就像是用浏览器访问百度检查网络连接是否畅通一样。 启动nginx并能正常访问后就OK了。
图像采集
docker pull nginx:最新
容器启动
docker 运行 -d
–名称 nginx
-p 8080:80
-v /home/pi/hd2/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
-v /home/pi/hd2/nginx/logs:/var/log/nginx
nginx
测试使用,只映射配置文件和日志路径。启动后,本地浏览器可以访问ip:8080,可以看到欢迎界面。
2. Portainer 是一个控制和操作主机镜像和容器的 Web 应用程序。 您可以通过可视化界面启动和停止容器,操作方便。 你不再需要手动输入命令行,但说实话,命令行更舒服。
图像采集
docker pull portainer:portainer
容器启动
docker 运行 -d
-p 9000:9000
–名称 porttainer
–始终重新启动
-v“/var/run/docker.sock:/var/run/docker.sock”
肖像画师
3、mysql官方的docker仓库没有arm架构镜像,所以使用第三方代替。
源代码
图像采集
docker pull hypriot/rpi-mysql
镜像启动
docker 运行 -d
–重新启动=始终
–name some-mysql
-p 3306:3306
-e MYSQL_ROOT_PASSWORD=my-secret-pw
hypriot/rpi-mysql
我查了一下百度,发现MariaDB可以支持ARM架构。 我是如此兴奋。 我发现我的系统是32位的,而DockerHub中的MariaDB只是64位的。 真可惜!
启动后,使用DataGrip进行连接,测试验证通过。
4. 亮点nextcloud
图像采集
docker pull nextcloud:最新
镜像启动
docker 运行 -d
–重新启动=始终
–name nextcloud
-p 8090:80
-v /home/pi/hd2/nextcloud/html:/var/www/html
-v /home/pi/hd2/nextcloud/data:/var/www/html/data
下一个云
同理,启动完成后,访问地址ip:8090,就会出现nextcloud云盘的登录界面,一切就完成了。
5.亮点是桑巴舞
图像采集
docker pull dperson/samba:最新
镜像启动
docker run -it
–重新启动=始终
–名称桑巴
-p 139:139
-p 445:445
-v /home/pi/hd2/tmpfiles:/挂载
-v /home/pi/hd1/raspi:/mount/raspi
-d dperson/samba
-u“pi;pi”
-s“共享;/挂载/;是;否;否;全部;无”
说明:-u "用户名:密码"
Samba是一种共享服务软件,为局域网中不同计算机之间提供文件、打印机等资源的共享服务。 SMB 协议是一种客户端/服务器协议,客户端可以通过该协议访问服务器上的共享文件系统、打印机和其他资源。 安装后,您可以通过电视上的Kodi应用程序直接访问Raspberry Pi磁盘来阅读电影或电视剧进行观看。 您还可以通过电脑添加局域网共享文件夹来访问、读取和操作文件。
树莓派文件路径
电视接入
可以看到树莓派上的路径和文件
6. Syncthing待部署和验证,替换nextcloud
5. 总结
有很多东西需要学习。 遇到问题只能百度。 我怕我记不住,所以就写下来了。
写的太仓促了,而且没有太多的结构。 谢谢您阅读此篇。 有兴趣的可以联系我一起交流,共同进步~毕竟日常和主持人相关的工作几乎也涉及到这些内容。 它将工作与爱好和实践结合起来。 太值钱了,哈哈
附件:docker ps -a 正在运行的容器