lxc-create 挂起并最终失败

lxc-create 挂起并最终失败

我试图在 Linux 容器上放置一些 juju charms,但容器无法启动。为了调试这个问题,我进入了发生这种情况的节点,并尝试手动创建一个 LXC 容器,就像

ubuntu@slot13:~$ sudo lxc-create -t ubuntu -n pavan
Checking cache download in /var/cache/lxc/trusty/rootfs-amd64 ...
Installing packages in template: ssh,vim,language-pack-en
Downloading ubuntu trusty minimal ...
I: Retrieving Release

它根本没有取得任何进展。它在这里停留了很长时间。过了很长时间后,它说,

ERROR: Unable to fetch GPG key from keyserver

并继续挂起。最后在 20-30 分钟后,它放弃了,就像

E: Failed getting release file http://archive.ubuntu.com/ubuntu/dists/trusty/Release

命令对应的日志文件在哪里lxc-create?如何调试这个问题?

编辑:我知道如何查看调试日志,因此运行了下面的命令几次

sudo lxc-create -t ubuntu -n pavan --logfile=test.txt --logpriority=DEBUG

test.txt仅包含此内容

lxc-create 1414897265.204 ERROR    lxc_container - Error: pavan creation was not completed
lxc-create 1414897407.757 ERROR    lxc_container - Error: pavan creation was not completed
lxc-create 1414897407.759 WARN     lxc_log - lxc_log_init called with log already initialized

但它仍然挂起并且调试日志没有提供太多帮助。

答案1

请附加--no-validate标志以跳过 gpg 验证:

lxc-create -t ubuntu -n pavan -- --no-validate

参考https://github.com/lxc/lxc/blob/master/templates/lxc-download.in#L240

答案2

您是否使用了代理?如果是,那么您可以在 bash 中设置代理。以下是问题:

export http_proxy="http://<proxy_host>:<port>"

答案3

实际上 juju 使用 'ubuntu-cloud' 模板来抓取图像,在我运行 trusty 的系统中创建模板所执行的命令是:

lxc-create -n juju-trusty-lxc-template \
  -t ubuntu-cloud \
  -f /var/lib/juju/containers/juju-trusty-lxc-template/lxc.conf \
  -- --debug \
  --userdata /var/lib/juju/containers/juju-trusty-lxc-template/cloud-init \
  --hostid juju-trusty-lxc-template
  -r trusty

我建议您运行类似的东西,看看会出现什么错误。

答案4

问题

如果您位于限制互联网访问的防火墙后面,则可能会收到此错误:

$ lxc-create -t download -n my-container
Setting up the GPG keyring
ERROR: Unable to fetch GPG key from keyserver.
lxc-create: lxccontainer.c: create_run_template: 1297 container
  creation template for my-container failed
lxc-create: tools/lxc_create.c: main: 318 Error creating
  container my-container

使固定

通过80端口连接密钥服务器:

$ lxc-create -t download -n my-container \
  -- --keyserver hkp://p80.pool.sks-keyservers.net:80

细节

密钥服务器hkp://p80.pool.sks-keyservers.net:80来自lxc源代码:

apt source lxc
grep -ri hkp: .

参考

相关内容