1

出于某种原因,我无法仅在 EC2 实例上使用 Lxc-attach 进入 docker 容器。这适用于我的本地机器和 Digital Ocean (KVM) 液滴,但不适用于 Amazon EC2 xen-paravirtualized Ubuntu12.04 实例。以下是步骤/错误:

root@ip-172-31-46-202:~/scalar/project/docker# lxc-ls
4074ebf985cfe09b2880a9eabbc7ad3e59283f425f64cfaa72f59f1f23661d18

root@ip-172-31-46-202:~/scalar/project/docker# lxc-attach -n 4074ebf985cfe09b2880a9eabbc7ad3e59283f425f64cfaa72f59f1f23661d18
lxc-attach: No such file or directory - failed to open '/proc/19731/ns/pid'
lxc-attach: failed to enter the namespace

有谁知道是否有办法解决这个问题?这是我的 docker 版本详细信息:

Client version: 0.7.6
Go version (client): go1.2
Git commit (client): bc3b2ec
Server version: 0.7.6
Git commit (server): bc3b2ec
Go version (server): go1.2
Last stable version: 0.7.6

还:

lxc version: 0.7.5
4

2 回答 2

3

你的内核版本是多少?

lxc-attach需要本机 12.04 内核 (3.5) 中不存在的功能。您至少需要 3.8,其中 IIRC 在 backport 中可用。

于 2014-02-04T20:12:18.867 回答
3

正如 Creac 所建议的,内核的版本不够高。(如果我尝试重新部署 AWS ubuntu 映像,它仍然使用内核 3.2)

为了解决这个问题,我运行了以下命令来获取 3.8:

sudo apt-get install linux-image-generic-lts-raring linux-headers-generic-lts-raring

或者您可以运行以下命令来获取 3.5

sudo apt-get install linux-image-generic-lts-quantal linux-headers-generic-lts-quantal

请注意,这些命令是 Ubuntu 特定的(根据问题),将安装“通用”内核而不是“虚拟”内核,但应该可以工作。[资源]

请注意,我尝试使用此附加信息更新 Creac 的原始答案,但编辑被拒绝,因此我觉得有必要创建一个新答案供其他人使用。

我找到命令的来源

于 2014-02-06T12:26:45.853 回答