Ubuntu Core 22 SSH会话容器归属及LXC相关疑问咨询
Ubuntu Core 22 SSH会话容器归属及LXC相关疑问咨询
嘿,我来帮你逐个理清这些Ubuntu Core 22的疑问:
1. 你的SSH会话运行在哪个容器里?
其实你当前的SSH会话并没有运行在普通的LXC/LXD用户容器中,而是直接运行在Ubuntu Core的基础系统环境里——这个环境可以理解为系统的“根环境”,它本身是一个只读的极简系统,所有额外功能都通过Snap包来扩展。Ubuntu Core的容器化特性更多是底层实现(比如Snap应用的沙箱),而默认的SSH访问是直接连接到这个基础系统的,不是某个用户创建的LXC容器。
2. 为什么默认没有lxc命令?
虽然Ubuntu Core底层依赖容器化技术,但它的定位是轻量化IoT/嵌入式系统,默认并不预装LXD/LXC的用户管理工具。LXD并不是Ubuntu Core的核心默认组件,如果你需要使用LXC命令来管理容器,得手动通过Snap安装LXD:
sudo snap install lxd
安装完成后还需要初始化一下:
sudo lxd init --auto
之后就能正常使用lxc系列命令了。
3. 有没有办法查看所有容器?
如果已经安装并初始化了LXD,直接运行lxc list就能列出所有用户创建的LXC容器。但默认情况下Ubuntu Core是没有用户容器的,你看到的“容器化”其实是Snap应用的沙箱隔离。如果想查看系统层面的容器相关组件状态,可以用:
systemctl list-units --type=service | grep -E 'lxc|lxd'
不过这个只能看到服务状态,不是用户容器列表。
4. 查看Snaps和查看容器是一回事吗?
完全不是一回事。两者的隔离机制和定位都不同:
- Snaps是打包好的应用分发格式,每个Snap都运行在自己的沙箱里,但这个沙箱是由
snapd管理的,更偏向于应用级别的隔离,目的是让应用可以跨系统兼容、安全运行。 - LXC/LXD容器是完整的系统级容器,每个容器都有自己的独立操作系统环境,适合运行完整的服务或系统实例。
简单说,Snap是“应用容器”,LXC是“系统容器”,两者不能混为一谈。
备注:内容来源于stack exchange,提问作者Kris
相关产品推荐
相关产品推荐

