LXD嵌套的虚拟docker(/dev/.lxc/proc/错误)的解决方法是什么?


8

在LXD中启动特权docker容器失败,这是这样的:

docker: Error response from daemon: linux runtime spec devices: lstat /dev/.lxc/proc/1482/fdinfo/12: no such file or directory.

重现步骤:

lxc launch ubuntu-daily:16.04 docker -p default -p docker
lxc exec docker -- apt install docker.io -y
lxc exec docker bash
sudo curl -L git.io/scope -o /usr/local/bin/scope
sudo chmod a+x /usr/local/bin/scope
scope launch

原始指南:LXD 2.0:LXD中的Docker

错误报告:Docker容器在/dev/.lxc/proc目录#2825中失败-GitHub

如何使其运作?


您链接的指南说您需要A Docker image which behaves when confined by user namespaces, or alternatively make the parent LXD container a privileged container (security.privileged=true)。问题可能出在scope哪里?您可以运行lxc exec docker -- docker run --detach --name app carinamarina/hello-world-app,还是可以在特权容器中运行?
乔纳森Y.

LXD是特权容器(“ docker” LXD配置文件提供security.privileged=true)。我hello-world在特权LXD中尝试了一些图像-同样的问题。不再有此配置,移至KVM。
Velkan '17

Answers:



0

只是为了清理一点,这已经很好地解决了(如@bmullan指出)。

16.04,lxd版本2.21,按以下顺序工作:

lxc launch ubuntu-daily:xenial xenial
lxc config set xenial security.nesting true
lxc exec xenial snap install docker
lxc exec xenial docker run ubuntu ls

docker.io软件包和dockersnap都可以使用,但是它们是不同的版本,并且具有不同的更新策略等。上面使用的snap版本是17.06.2-ce,而xenial中的docker.io软件包是1.13.1。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.