Qual é a solução alternativa para a janela de encaixe privilegiada aninhada por LXD (/dev/.lxc/proc/ error)?

8

A ativação de um contêiner de docker privilegiado em um LXD falha com isso:

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

Passos para reproduzir:

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

Guia original: LXD 2.0: Docker no LXD

Relatório de erro: Contêineres do Docker falhando no diretório /dev/.lxc/proc # 2825 - GitHub

Como fazer dar certo?

Velkan
fonte
Esse guia vinculado diz que você precisa A Docker image which behaves when confined by user namespaces, or alternatively make the parent LXD container a privileged container (security.privileged=true). É possível que o problema esteja com scope? Você pode executar lxc exec docker -- docker run --detach --name app carinamarina/hello-world-appou, alternativamente, ele funciona em um contêiner privilegiado?
Jonathan Y.
O LXD era um contêiner privilegiado (o perfil LXD do 'docker' fornece security.privileged=true). Eu tentei alguma hello-worldimagem em um LXD privilegiado - mesmo problema. Não tem mais essa configuração, movida para o KVM.
Velkan

Respostas:

0

Por Stephane Graber (desenvolvedor líder do LXD), você não precisa mais do perfil docker LXD!

Veja… https://github.com/lxc/lxd/issues/3299

bmullan
fonte
Por favor, tente sempre fornecer o número da versão desde quando é corrigido. É sempre frustrante clonar repositórios, procurar o commit e o próximo lançamento depois dele.
Velkan
0

Apenas para limpar um pouco, isso é resolvido muito bem (como @bmullan aponta).

16.04, lxd versão 2.21, a seguinte sequência funciona:

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

O docker.iopacote e o dockersnap funcionam, mas são versões diferentes e têm políticas de atualização diferentes etc. A versão do snap usada acima é 17.06.2-ce, enquanto o pacote docker.io no xenial é 1.13.1.

dpb
fonte