Ano, je to možné. Nemůžete však mít oddíl aufs vnořený do aufs. Musíte připojit jiný systém nebo použít jiný backend úložiště.
Můžete se podívat na makefile dockeru a hack/dind . K tomu potřebujete privilegovaný režim.
Nejjednodušší způsob, jak to zkusit, je udělat make shell a jakmile budete v kontejneru, můžete spustit nového démona dockeru :)
EDIT:Zkoušel jsem Koding a opravdu to není možné. V jejich kontejneru nemáte oprávnění, takže nemůžete spustit nový docker.
Ano, docker může běžet v linuxovém kontejneru.
Docker však poběží pouze s lxc exekuční ovladač a v neomezeném lxc.
Zde je návod, jak získat docker v LXC:
-
Ujistěte se, že máte
lxc.aa_profile = lxc-container-default-with-nesting(pokud to nefunguje nebo tento profil nemáte, zkustelxc.aa_profile = unconfined) vconfigsouboru vašeho LXC, abyste zajistili, že nebude blokovánapparmor. Pro více informací navštivte (nebo upravte) soubory v/etc/apparmor.d/lxc. -
Musíte nainstalovat lxc do svého kontejneru. Pokud jste například pod ubuntu, spusťte v kontejneru
apt-get install lxc. -
Ujistěte se, že démon docker je volán s
--exec-driver=lxcparametr. Předtím si to můžete vyzkoušet ručním zadánímdocker -d --exec-driver=lxc. V ubuntu, aby byl argument použit při spuštění, jednoduše upravte/etc/default/dockera ujistěte se, že máte řádek:
DOCKER_OPTS="--exec-driver=lxc"
Aktualizace najdete v tomto vláknu:https://github.com/docker/docker/issues/6783
Pokud potřebujete vyřešit problém:
- sledujte
apparmorse přihlásí do protokolů jádra hostitele. - spusťte
docker -d ...ručně získat výstupy.
Poznámka:Možná nemáte od hostitele možnost upravit skript LXC apparmor na Koding posouzením odpovědí ostatních, každopádně tento návod zůstává zajímavý, pokud jste poskytovatelem LXC, a odpovídá na obecnější otázku, kterou jste položili ve svém název otázky a to by mohlo přilákat lidi v obecnějších scénářích (jako jsem byl já).
A zde je úplný průvodce pro kohokoli jiného na stejné lodi.
Spusťte terminál a začněte psát..
docker run -i -t --privileged -v /var/lib/docker ubuntu bash
apt-get update && apt-get install -y docker.io
service docker.io start
ln -s /usr/bin/docker.io /usr/local/bin/docker
docker run -i -t ubuntu bash
Nyní byste měli být uvnitř kontejneru v jiném kontejneru.
Poznámky:
- Příznak
--privilegedK tomu je potřeba na vnější nádobě. - MUSÍTE použít
-v /var/lib/dockerabyste se vyhnuli omezení uvedenému vrzáním. ln -s /usr/bin/docker.io /usr/local/bin/dockerprávě vytváří symbolický odkaz, abychom mohli napsatdockermístodocker.io