PVE下创建LXC debian 容器并安装docker

为了不影响PVE这个宿主机,推荐使用套娃的形式安装Docker。首先现在CT模板中创建 Linux 容器,推荐使用Debian。

创建过程倒没有什么特别,设置要静态ip网关即可,因为这个Docker服务的媒体大数据都是通过专门的nas盘挂载,本身不需要太大的空间。

好处:

docker的环境对宿主机没有太大的侵入性

LXC容器的显卡直通不会让宿主机无法输出画面

创建LXC Debian 容器

创建

设置如下:

去掉无特权容器的勾,无特权容器无法挂载smb目录,cpu 全核心, 内存 2G, swap 2G, 网络 vmbr0, 静态IPv4。

创建完成后,不着急启动,先设置核显直通。

直通显卡

查看PVE有哪些显卡

1
ls -l /dev/dri

drwxr-xr-x 2 root root 80 Apr 23 18:34 by-path
crw-rw—- 1 root video 226, 0 Apr 23 18:34 card0
crw-rw—- 1 root render 226, 128 Apr 23 18:34 renderD128

显卡是226, 0, 渲染器 是 225, 128

在容器配置结尾添加设备配置,注意修改:CT_ID

1
2
3
4
5
6
7
8
cat >> /etc/pve/lxc/[CT_ID].conf << EOF
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
lxc.apparmor.profile: unconfined
EOF

最终配置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
arch: amd64
cores: 4
hostname: docker
memory: 2048
net0: name=eth0,bridge=vmbr0,firewall=1,gw=192.168.1.1,hwaddr=09:AE:C9:46:C2:9D,ip=192.168.1.2/24,type=veth
ostype: debian
rootfs: local-lvm:vm-101-disk-0,size=32G
searchdomain: 192.168.1.1
swap: 2048
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
lxc.apparmor.profile: unconfined

启动

可以直接界面启动容器,或者命令行输入:

1
pct start [CT_ID]

安装Docker

1. 更新并升级

首先,更新Debian系统上的软件包索引:

1
sudo apt-get update && apt-get upgrade

2. 添加 Docker 的官方 GPG 密钥

通过以下命令添加 Docker 的 GPG 密钥:

1
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

3. 设置 Docker 稳定版仓库

设置 Docker 稳定版的 APT 软件源:

1
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

4. 更新软件包索引并安装 Docker 引擎

再次更新软件包索引,然后安装 Docker 引擎:

1
2
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

5. 验证 Docker 是否安装成功

安装完成后,可以通过以下命令验证 Docker 是否安装成功:

1
sudo docker --version

6. 运行一个测试容器

最后,运行一个简单的测试容器来确认 Docker 安装成功:

1
sudo docker run hello-world

如果看到 Hello from Docker! 的信息,说明 Docker 安装成功并运行正常。

7. (可选)设置非 root 用户使用 Docker

如果你希望以非 root 用户身份运行 Docker,需要将用户添加到 docker 组中:

1
sudo usermod -aG docker $USER

之后需要退出当前终端并重新登录,或者通过 newgrp docker 立即应用组更改。