今天我修改了一个 LXC 容器以添加额外的“绑定挂载”,但忘记在容器根文件系统中创建挂载目录。
结果容器启动失败,并使系统处于奇怪的状态。
该初创公司已经为容器创建了“veth”接口,并将我使用“phys”方法绑定到容器的另一个接口从系统“可预测接口名称”名称 ensXfY 重命名为容器名称 eth1。
但事故发生后并没有解决这个问题。
因此,即使修复了根本问题,容器仍然无法启动,因为主机网络混乱。
我在运行 LXC 软件包 2.0.11-0ubuntu1~16.04.3 的 Ubuntu 16.04 上发生了这种情况,但它也可能会影响其他 Linux 发行版上的某些其他版本的 LXC。
答案1
这产生了两个独立的问题 - 陈旧的“veth”对和物理接口未正确命名。
我通过结合这篇文章的一些内容解决了这个问题:
对于“veth”问题,以及这篇文章:
用于重命名网络接口。
我最终使用的两个命令最终是:
ip link delete vethXYZ
ip link set eth1 name ensXfY
修复真正的原始问题(通过创建挂载点目录)并运行这些命令后,我就能够正确启动容器。