
利用闲置的 树莓派4B 搭建 OpenMediaVault 记录一下整个过程
树莓派系统
- 通过
Raspberry Pi Imager将镜像Raspberry Pi OS Lite烧录到 SD 卡
更换国内源
- 清华大学镜像源
Raspberry Pi OShttps://mirrors.tuna.tsinghua.edu.cn/raspberrypi/
- 编辑软件更新源
sudo nano /etc/apt/sources.list,修改为:1
2
3deb https://mirrors.tuna.tsinghua.edu.cn/debian trixie main contrib non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security trixie-security main contrib non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian trixie-updates main contrib non-free-firmware - 编辑系统更新源
sudo nano /etc/apt/sources.list.d/raspi.list,修改为:1
deb https://mirrors.tuna.tsinghua.edu.cn/raspberrypi trixie main
- 更新:
1
2sudo apt-get update
sudo apt-get upgrade
OpenMediaVault
- 通过脚本安装 OMV:
1
wget --no-check-certificate -O - https://github.com/OpenMediaVault-Plugin-Developers/installScript/raw/master/install | sudo bash
- 修改国内源:
1
2sudo omv-env set OMV_APT_REPOSITORY_URL "https://mirrors.tuna.tsinghua.edu.cn/OpenMediaVault/public"
sudo omv-salt stage run all - 登陆 OMV
登陆管理界面(树莓派的 IP 地址), 默认用户名:admin,密码:openmediavault。 - 安装
compose1
sudo apt-get install openmediavault-compose
- 安装插件
omv-extras启用docker repo - 设置共享文件夹,创建
compose设置所需要的文件夹,docker_compose,docker_data,docker_backup。 - 新建用户配置
docker权限,并设置compose文件夹读写权限,并将用户PUIDPGID信息添加至compose全局环境变量1
2
3PUID=1001
PGID=100
TZ=Asia/Shanghai
Docker
部署一些常用容器
DockerHub 加速镜像
国内镜像站(包括各种云服务商和高校镜像站)已经无法使用,目前国内可用镜像加速器地址 dongyubin/DockerHub
常用参考:
1 | docker.1panel.live |
Portainer
- 拉取镜像
通过镜像网站dockerproxy.net拉取镜像:1
sudo docker pull dockerproxy.net/portainer/portainer-ce:latest
- 创建数据卷:
1
sudo docker volume create portainer_data
- 启动容器:
1
2
3
4
5
6
7
8sudo docker run -d \
--name=portainer \
--restart=always \
-p 8000:8000 \
-p 9000:9000 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
dockerproxy.net/portainer/portainer-ce:latest
Adguard
- 拉取镜像
通过镜像网站dockerproxy.net拉取镜像:1
sudo docker pull dockerproxy.net/adguard/adguardhome:latest
- 启动容器:
1
2
3
4
5
6
7
8
9sudo docker run -d \
--name=adguard \
--restart=always \
-p 53:53/tcp -p 53:53/udp\
-p 3000:3000/tcp\
-p 8888:80 \
-v /docker_data/adguard/workdir:/opt/adguardhome/work \
-v /docker_data/adguard/confdir:/opt/adguardhome/conf\
dockerproxy.net/adguard/adguardhome:latest - 解决53端口占用:
查看使用 53 端口的进程:sudo lsof -i :53
一般都是systemd-resolve占用端口,默认会在本地 53 端口(UDP/TCP)启动一个DNSStub监听器,用于处理本地 DNS 请求。
停止服务:
sudo systemctl stop systemd-resolved
编辑配置文件:sudo nano /etc/systemd/resolved.con
修改配置,将 DNSStubListener=yes 改为 DNSStubListener=no
重启服务:sudo systemctl restart systemd-resolved
Clash
- 拉取镜像
通过镜像网站dockerproxy.net拉取镜像:1
sudo docker pull dockerproxy.net/dreamacro/clash:latest
- 启动容器:
1
2
3
4
5
6
7
8sudo docker run -d \
--name=clash \
--restart=always \
-p 7890:7890 \
-p 7891:7891 \
-p 9090:9090 \
-v /docker_data/clash:/root/.config/clash \
dockerproxy.net/dreamacro/clash:latest - 编辑配置文件:
1
sudo nano /docker_data/clash/config/config.yaml
Yacd
- 拉取镜像
通过镜像网站dockerproxy.net拉取镜像:1
sudo docker pull dockerproxy.net/haishanh/yacd:latest
- 启动容器:
1
2
3
4
5sudo docker run -d \
--name=yacd \
--restart=always \
-p 1234:80 \
dockerproxy.net/haishanh/yacd:latest
Openlist
- 拉取镜像
通过镜像网站docker.1ms.run拉取镜像:1
sudo docker pull docker.1ms.run/openlistteam/openlist:latest
- 启动容器:
1
2
3
4
5
6
7sudo docker run -d \
--name=openlist \
--restart=always \
-p 8886:5244 \
-v /docker_data/openlist:/opt/openlist/data \
-v /share/openlist:/opt/openlist/share \
docker.1ms.run/openlistteam/openlist:latest
Lsky 兰空图床
- 拉取镜像
通过镜像网站docker.1ms.run拉取镜像:1
sudo docker pull docker.1ms.run/dko0/lsky-pro:latest
- 启动容器:
1
2
3
4
5
6
7sudo docker run -d \
--name=lsky-pro \
--restart=always \
-p 8885:80 \
-v /docker_data/lskypro/data:/app/storage/app \
-v /docker_data/lskypro/data/themes:/app/themes \
docker.1ms.run/dko0/lsky-pro:latest
Nginx Proxy Manager
- 拉取镜像
通过镜像网站docker.1ms.run拉取镜像:1
sudo docker pull docker.1ms.run/jc21/nginx-proxy-manager:latest
- 启动容器:
1
2
3
4
5
6
7
8sudo docker run -d \
--name=nginxproxymanager \
--restart=always \
-p 8443:443 \
-p 8885:81 \
-v /docker_data/nginxproxymanager/data:/data \
-v /docker_data/nginxproxymanager/etc/letsencrypt:/etc/letsencrypt \
docker.1ms.run/jc21/nginx-proxy-manager:latest
压缩备份
- 安装
git1
sudo apt-get install git
- 安装
dc3dd1
sudo apt install dc3dd
- 在
media目录下新建目录作为U盘挂载点1
sudo mkdir /media/<目录名称>
- 使用
lsblk命令查看设备信息 - 挂载U盘到目录
1
sudo mount /dev/<U盘> /media/<目录名称>
- 使用
dc3dd备份镜像1
sudo dc3dd if=<树莓派TF卡路径> of=<备份镜像输出路径>/<镜像名称>.img
- 拉取
PiShrink1
2
3sudo git clone https://github.com/Drewsif/PiShrink/
sudo chmod +x PiShrink/pishrink.sh
sudo mv PiShrink/pishrink.sh /usr/local/bin - 使用
PiShrink压缩镜像1
sudo pishrink.sh -z /<路径>/<镜像名称>.img
- 压缩成功后,卸载已挂载U盘
1
sudo umount /media/<目录名称>
![img]()
