前言

前段时间家里买了个J4125的软路由,为了发挥它的性能,装了PVE虚拟化环境并且配置了qBittorrent。鉴于网上相关文章较少,在此总结我的配置流程。

目前只挂portainer和qbittorrent,仅占用大约800mb。
效果如图:
屏幕截图 2023-05-15 185912.png

I.创建CT(即lxc容器)

换CT模板源

使用如下命令更换CT模板源,从而避免从国内镜像下载速度过慢。如果已经换过,可以忽略此步骤

1
2
cp /usr/share/perl5/PVE/APLInfo.pm /usr/share/perl5/PVE/APLInfo.pm_back
sed -i 's|http://download.proxmox.com|https://mirrors.ustc.edu.cn/proxmox|g' /usr/share/perl5/PVE/APLInfo.pm

使用如下指令重启服务(虚拟机不受影响,网页管理将会掉线一会儿)

1
systemctl restart pvedaemon

创建Debian容器

本教程使用Debian作为lxc容器,如需要更换其他容器,建议自行配置。
转到存储(此处为local(pve)),点CT模板,在上方点模板,这里下载debian-12-standard
屏幕截图 2023-05-15 190042.png
下载完成后,随后切到主节点(此处为pve),点右上角创建CT。
常规选项卡里需将无特权取消勾选,名称自定,密码为容器的root账户密码,自行设置,其他保持默认即可。
模板页选刚刚下的Debian模板。
磁盘大小默认即可,如有需求,可向上自行加
处理器核心按需配置,内存的话,1.5g其实就够了(Swap可以配置成和内存一样,也可以不用管)。
网络使用DHCP,如有静态需求,自行配置。其他配置遵循默认。
创建完成CT之后,先不要启动
在容器的选项里,双击功能,将嵌套,NFS,SMB/CIFS,FUSE全部勾选,确认,随后启动。

默认即可通过noVnc链接到lxc容器内的Debian。用户名密码为创建CT时设置的(用户名默认root)

II.配置Debian系统

更换软件源

同样的,国内直连Debian软件包安装源速度过慢,需要为Debian软件包管理器换源。可通过以下命令换源,此处为中科大源。

1
sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list

随后`apt-get update’即可更换成功。

安装Docker

这里我们使用官方文档中的Install using the apt repository安装方式,首先执行如下命令:

1
2
3
4
# 更新apt包索引并安装一些包使apt能够使用HTTPS仓库

apt-get update
apt-get install ca-certificates curl gnupg -y
1
2
3
4
5
# 添加Docker的官方GPG key(此处已经改为USTC镜像源)

install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg
1
2
3
4
5
6
# 配置仓库

echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.ustc.edu.cn/docker-ce/linux/debian \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  tee /etc/apt/sources.list.d/docker.list > /dev/null
1
2
3
# 再次更新apt包索引

apt-get update
1
2
3
# 安装Docker

apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

完成后,安装Portainer(Web Docker管理器)
其实Portainer是非必要的,但是考虑到以后部署其他Docker容器的需求,本教程使用Portainer创建qBittorrent容器。

本教程依然根据Portainer官方文档进行安装。默认管理端口9443

1
2
3
# 创建Portainer存储数据库的分区

docker volume create portainer_data
1
2
# 下载并安装Portainer CE
docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest

安装好后,访问lxc的IP并加上Portainer的端口,随后配置账户密码,连接上lxc容器内部署完的docker,如不会可以上网查询教程,此处不再赘述。

提示:直接打开IP:9443可能会提示Client sent an HTTP request to an HTTPS server.,你需要手动改为https://IP:9443并点继续访问。后续可能需要手动配置HTTPS证书,这里不讨论。

III.挂载目录

我们需要把外置的硬盘映射到lxc容器供其访问,才能下载文件。

挂载硬盘到pve

该步骤若已配置或知晓如何操作,可以跳过

注:需要挂载的磁盘建议直接清空,不要留有数据,下面的操作会清空磁盘数据。

选中pve主节点,点击左侧磁盘,可以在这个页面看到未使用的硬盘。选中磁盘,在上方使用GPT初始化磁盘,即可成功初始化。

向下选目录,点上方的创建:目录。找到要挂载的磁盘(由于此处我已经挂载过,所以会显示没有可以挂载的硬盘)。
屏幕截图 2023-05-15 190747.png
选中要挂载的磁盘,文件系统可以使用ext4或按需要设置。
名称自取,会让你填名称,这里的名称是挂载目录下磁盘的名称。我这里使用的是storage1,挂载的目录就会在pve系统下的/mnt/pve目录下。此处挂载的storage1,对应下面参数说明里的/mnt/pve/storage1。
在挂载完成后,应当看到类似如下的界面:
屏幕截图 2023-05-15 191514.png

接下来
进入pve本体的shell,给予挂载目录权限,我是无脑777,即chmod 777 /mnt/pve/storage1,有权限要求的建议自己修改。

*这里建议不要将整个挂载目录映射到lxc中,因为挂载的目录里有部分linux生成的文件,不适合直接给lxc容器。建议在挂载目录下新建一个目录,我这里用的是userdata,对应下面目录位置中的/mnt/pve/storage1/userdata。记得创建完目录之后要授予该目录权限,否则lxc容器将无权访问目录,进而导致qBittorrent下载器创建任务一直错误。

映射目录到lxc容器

在pve管理面板查看lxc的VM ID,此处为102。

1
pct set 102 -mp1 /mnt/pve/storage1/userdata,mp=/home/mntdir/st1

详细参数说明:

  • pct set: # 在pve中运行
  • 102: # 自己的容器ID
  • -mp1: # 第一个文件夹,如果挂载到第二、三个,用mp2,mp3依次递增。不记得设置了多少个,在pve对应的ID中,里面有资源选项卡会显示挂载的情况。
  • /mnt/pve/storage1/userdata: # 这是pve上的目录位置(即上面挂载的目录)
  • mp=/home/mntdir/st1: # 这是要挂载到容器中的目录位置 *说明来自:CSDN一篇博文

IV.安装qBittorrent

挂载完目录之后,可以直接开始安装qBittorrent容器了。下面我们使用刚刚安装的Portainer安装该容器。
首先链接上本地的docker,此处是图上的local,点击进入即可。
屏幕截图 2023-05-15 192450.png
随后点左侧的Container,按Add Container
屏幕截图 2023-05-15 192505.png


未完待续