共计 1399 个字符,预计需要花费 4 分钟才能阅读完成。
之前有提到如何使用 Pve 使用 lxc 创建 Openwrt 的容器,不过那个是使用了自己编译的根文件系统压缩包,其实 Pve 也提供了许多 CT (Container Template)模板。
可以在 CT 模板页面,点击上方的模板,选择自己需要的模板进行下载。这里有各类模板,有系统模板如 Ubuntu、Centos,还有软件模板如 Nextcloud、Mysql、Nginx等。
这里以 ubuntu22.04 的模板为例,创建一个 ubuntu 容器。首先需要从下载一个 ubuntu22.04 的模板,然后执行如下命令即可:
pct create 118 \
local:vztmpl/ubuntu-22.04-standard_22.04-1_amd64.tar.zst \
--rootfs local:20 \
--ostype ubuntu \
--hostname myubuntu \
--arch amd64 \
--cores 4 \
--memory 4096 \
--swap 4096 \
--onboot 1 \
--start 1 \
--net0 bridge=vmbr0,name=eth0,ip=172.21.9.26/24,gw=172.21.9.254 \
--password=12345
-
pct create 118: 创建容器的命令,118 是要创建的容器的 ID。
-
local:vztmpl/ubuntu-22.04-standard_22.04-1_amd64.tar.zst: 使用本地存储中的 Ubuntu 22.04 标准模板来创建容器。
-
--rootfs local:20: 使用本地存储,并分配 20g 空间。
-
--ostype ubuntu: 指定容器的操作系统类型为 Ubuntu。
-
--hostname myubuntu: 设置容器的主机名。
-
--arch amd64: 指定容器的架构为 amd64。
-
--cores 4: 分配给容器的虚拟 CPU 核心数量。
-
--memory 4096: 为容器分配内存。
-
--swap 4096: 为容器分配交换空间。
-
--onboot 1: 设置容器在主机启动时自动启动。
-
--start 1:容器创建后立即启动。
-
--net0 bridge=vmbr0,name=eth0,ip=172.21.9.25/24: 配置容器的网络接口。使用 vmbr0 桥接接口,并将容器内的网络接口命名为 eth0,并分配给容器的 IP 地址为 172.21.9.25,子网掩码为 24。如果想设置动态获取 ip,可以设置为 ip=dhcp。gw 为容器指定网关为 172.21.9.254。
-
--password=12345: 设置容器的 root 用户密码为 12345。
更多关于 pct 的命令,可以使用 man pct
进行查阅,比如说创建时指定 dns、时区、是否为特权容器等。
创建好了 ubuntu 容器此时还不能 ssh,因为默认是 root 用户,而 ubuntu 需要配置才能让 root 用户可以登录。
此时可以通过 Pve 的 web 页面进入刚刚创建的容器执行命令,也可以通过命令行进入。
# 进入容器,可使用exit退出
pct exec 118 bash
# 通过控制台进入,需要先按ctrl+a,松开后按q进行退出
# pct console 118
进入容器后,再执行如下命令:
# 允许root用户登录
sed -i '/PermitRootLogin/ a PermitRootLogin yes' /etc/ssh/sshd_config
# 重启ssh
systemctl restart ssh
提醒:本文发布于387天前,文中所关联的信息可能已发生改变,请知悉!