enjoyduck

没有梦想,何必远方

0%

树莓派安装 OpenMediaVault

img
利用闲置的 树莓派4B 搭建 OpenMediaVault 记录一下整个过程

树莓派系统

  • 通过 Raspberry Pi Imager 将镜像 Raspberry Pi OS Lite 烧录到 SD 卡

更换国内源

  1. 编辑软件更新源 sudo nano /etc/apt/sources.list ,修改为:
    1
    2
    3
    deb 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
  2. 编辑系统更新源 sudo nano /etc/apt/sources.list.d/raspi.list ,修改为:
    1
    deb https://mirrors.tuna.tsinghua.edu.cn/raspberrypi trixie main
  3. 更新:
    1
    2
    sudo apt-get update
    sudo apt-get upgrade

OpenMediaVault

  1. 通过脚本安装 OMV:
    1
    wget --no-check-certificate -O - https://github.com/OpenMediaVault-Plugin-Developers/installScript/raw/master/install | sudo bash
  2. 修改国内源:
    1
    2
    sudo omv-env set OMV_APT_REPOSITORY_URL "https://mirrors.tuna.tsinghua.edu.cn/OpenMediaVault/public"
    sudo omv-salt stage run all
  3. 登陆 OMV
    登陆管理界面(树莓派的 IP 地址), 默认用户名:admin,密码:openmediavault
  4. 安装 compose
    1
    sudo apt-get install openmediavault-compose
  5. 安装插件 omv-extras 启用 docker repo
  6. 设置共享文件夹,创建 compose 设置所需要的文件夹,docker_composedocker_datadocker_backup
  7. 新建用户配置 docker 权限,并设置 compose 文件夹读写权限,并将用户 PUID PGID 信息添加至 compose 全局环境变量
    1
    2
    3
    PUID=1001
    PGID=100
    TZ=Asia/Shanghai

Docker

部署一些常用容器

DockerHub 加速镜像

国内镜像站(包括各种云服务商和高校镜像站)已经无法使用,目前国内可用镜像加速器地址 dongyubin/DockerHub
常用参考:

1
2
3
4
docker.1panel.live
docker.1ms.run
docker.m.daocloud.io
dockerproxy.net

Portainer

  1. 拉取镜像
    通过镜像网站 dockerproxy.net 拉取镜像:
    1
    sudo docker pull dockerproxy.net/portainer/portainer-ce:latest
  2. 创建数据卷:
    1
    sudo docker volume create portainer_data
  3. 启动容器:
    1
    2
    3
    4
    5
    6
    7
    8
    sudo 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

  1. 拉取镜像
    通过镜像网站 dockerproxy.net 拉取镜像:
    1
    sudo docker pull dockerproxy.net/adguard/adguardhome:latest
  2. 启动容器:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    sudo 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
  3. 解决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

  1. 拉取镜像
    通过镜像网站 dockerproxy.net 拉取镜像:
    1
    sudo docker pull dockerproxy.net/dreamacro/clash:latest
  2. 启动容器:
    1
    2
    3
    4
    5
    6
    7
    8
    sudo 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
  3. 编辑配置文件:
    1
    sudo nano /docker_data/clash/config/config.yaml

Yacd

  1. 拉取镜像
    通过镜像网站 dockerproxy.net 拉取镜像:
    1
    sudo docker pull dockerproxy.net/haishanh/yacd:latest
  2. 启动容器:
    1
    2
    3
    4
    5
    sudo docker run -d \
    --name=yacd \
    --restart=always \
    -p 1234:80 \
    dockerproxy.net/haishanh/yacd:latest

Openlist

  1. 拉取镜像
    通过镜像网站 docker.1ms.run 拉取镜像:
    1
    sudo docker pull docker.1ms.run/openlistteam/openlist:latest
  2. 启动容器:
    1
    2
    3
    4
    5
    6
    7
    sudo 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 兰空图床

  1. 拉取镜像
    通过镜像网站 docker.1ms.run 拉取镜像:
    1
    sudo docker pull docker.1ms.run/dko0/lsky-pro:latest
  2. 启动容器:
    1
    2
    3
    4
    5
    6
    7
    sudo 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

  1. 拉取镜像
    通过镜像网站 docker.1ms.run 拉取镜像:
    1
    sudo docker pull docker.1ms.run/jc21/nginx-proxy-manager:latest
  2. 启动容器:
    1
    2
    3
    4
    5
    6
    7
    8
    sudo 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

压缩备份

  1. 安装 git
    1
    sudo apt-get install git
  2. 安装 dc3dd
    1
    sudo apt install dc3dd
  3. media 目录下新建目录作为U盘挂载点
    1
    sudo mkdir /media/<目录名称>
  4. 使用 lsblk 命令查看设备信息
  5. 挂载U盘到目录
    1
    sudo mount /dev/<U盘> /media/<目录名称>
  6. 使用 dc3dd 备份镜像
    1
    sudo dc3dd if=<树莓派TF卡路径> of=<备份镜像输出路径>/<镜像名称>.img
  7. 拉取 PiShrink
    1
    2
    3
    sudo git clone https://github.com/Drewsif/PiShrink/
    sudo chmod +x PiShrink/pishrink.sh
    sudo mv PiShrink/pishrink.sh /usr/local/bin
  8. 使用 PiShrink 压缩镜像
    1
    sudo pishrink.sh -z /<路径>/<镜像名称>.img
  9. 压缩成功后,卸载已挂载U盘
    1
    sudo umount /media/<目录名称>
    img