概述
本文主要介绍在Proxmox VE(PVE)虚拟化环境中,如何构建LXC容器以隔离PVE环境。我们将使用PVE中的模版创建LXC容器,并在其中安装Docker服务。通过这种方式,我们可以在PVE虚拟环境中安全地部署和管理Docker应用。
软件源更新
1
| sed -e 's/www.debian.org/mirrors.tuna.tsinghua.edu.cn/' tmp/sources.list.backup > /etc/apt/sources.list
|
docker安装
1
| curl -fsSL get.docker.com -o /tmp/get-docker.sh
|
1
| sh /tmp/get-docker.sh --mirror Aliyun
|
配置显卡
通过 ls -l /dev/dri
命令查询设备号
在PVE终端打开 vim /etc/pve/lxc/[CT_ID].conf
文件,写入如下代码,将设备挂载到LXC容器中。
1 2 3 4 5
| lxc.cgroup2.devices.allow: c 226:0 rwm lxc.cgroup2.devices.allow: c 226:128 rwm lxc.cgroup2.devices.allow: c 29:0 rwm lxc.mount.entry: /dev/dri dev/dri none bind,optional,create=dir lxc.mount.entry: /dev/fb0 dev/fb0 none bind,optional,create=file
|
PVE下默认限制了LXC容器权限,不能直接挂载NFS共享文件。简单粗暴的方法是直接取消限制,修改容器配置文件,追加一行。这种做法取消所有安全规则,不够安全,下面是单独设置nfs的方法,参考
1
| lxc.apparmor.profile: unconfined
|
portainer安装
安装docker管理服务,提供可视化的界面。采用官方镜像进行安装
1
| docker volume create portainer_data
|
1 2 3 4 5 6
| docker run -d \ -p 8000:8000 -p 9000:9000 \ --name=portainer --restart=always \ -v /var/run/docker.sock:/var/run/docker.sock \ -v portainer_data:/data \ portainer/portainer
|
-d: 后台运行; --restart: 当容器退出时的重启策略;
挂载Samba服务
软件安装
通过安装如下SMB组件:
1
| apt install cifs-utils -y
|
采用如下工具查询服务信息:
1
| smbclient -L <服务器IP或主机名> -U <用户名>
|
手动挂载
1
| mount -t cifs <共享点路径(//192.168.1.12/share)> <挂载点(/mnt)> -o username=<用户名>
|
或者
1
| mount.cifs <共享点路径(//192.168.1.12/share)> <挂载点(/mnt)> -o username=<用户名>
|
通过 mount -l | grep <挂载点>
命令查看挂载情况。
开机自动挂载
通过配置 /etc/fstab
文件
1
| <共享点路径> <挂载点> cifs username=<用户名>,password=<密码> 0 0
|
该方式存在账号密码泄露风险,故可以使用文件保存账号信息,配置如下:
1
| <共享点路径> <挂载点> cifs credentials=<凭证文件路径> 0 0
|
凭证文件中的内容格式如下:
1 2 3
| username=value password=value domain=value [option]
|
其它参数
1
| <共享点路径> <挂载点> cifs credentials=<凭证文件路径>,iocharset-utf8,rw 0 0
|
iocharset
:
执行挂载
安装jellyfin服务
nyanmisaka/jellyfin:latest
如果出现如下错误
1
| invalid CapDrop: capability not supported by your kernel or not available in the current environment: "CAP_MAC_ADMIN"
|
尝试在conf文件中添加:
安装 Aria2
环境变量
1 2 3 4 5 6 7 8 9 10 11
| - PUID=65534 - PGID=65534 - UMASK_SET=022 - RPC_SECRET=<password> - RPC_PORT=6800 - LISTEN_PORT=6888 - DISK_CACHE=64M - IPV6_MODE=false - UPDATE_TRACKERS=true - CUSTOM_TRACKER_URL= - TZ=Asia/Shanghai
|
挂载卷
1 2 3
| volumes: - ${PWD}/aria2-config:/config - ${PWD}/aria2-downloads:/downloads
|
网络端口
如果桥接模式,需要暴露端口号
1 2 3
| - 6800:6800 - 6888:6888 - 6888:6888/udp
|
安装AriaNg
镜像: p3terx/ariang