Quelle est la solution de contournement pour le docker pivoté imbriqué LXD (erreur /dev/.lxc/proc/)?

8

Le lancement d'un conteneur Docker privilégié dans un LXD échoue avec ceci:

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

Étapes à reproduire:

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

Guide d'origine: LXD 2.0: Docker dans LXD

Rapport de bogue: échec des conteneurs Docker dans le répertoire /dev/.lxc/proc # 2825 - GitHub

Comment le faire fonctionner?

Velkan
la source
Le guide que vous avez lié indique que vous en avez besoin A Docker image which behaves when confined by user namespaces, or alternatively make the parent LXD container a privileged container (security.privileged=true). Est-il possible que le problème soit avec scope? Pouvez-vous exécuter lxc exec docker -- docker run --detach --name app carinamarina/hello-world-app, ou bien cela fonctionne-t-il dans un conteneur privilégié?
Jonathan Y.
LXD était un conteneur privilégié (le profil LXD 'docker' donne security.privileged=true). J'ai essayé une hello-worldimage dans un LXD privilégié - même problème. Ne plus avoir cette configuration, déplacée vers KVM.
Velkan

Réponses:

0

Par Stephane Graber (développeur principal LXD), vous n'avez plus besoin du profil de docker LXD!

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

bmullan
la source
S'il vous plaît, essayez de toujours fournir le numéro de version depuis qu'il est corrigé. Il est toujours frustrant de cloner des dépôts, de rechercher le commit et la prochaine version après.
Velkan
0

Juste pour nettoyer un peu, cela est très bien résolu (comme le souligne @bmullan).

16.04, lxd version 2.21, la séquence suivante fonctionne:

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

Le docker.iopackage et le dockersnap fonctionnent tous les deux, mais sont des versions différentes et ont des politiques de mise à jour différentes, etc. La version snap utilisée ci-dessus est 17.06.2-ce, tandis que le package docker.io dans xenial est 1.13.1.

dpb
la source