はい、可能です。ただし、aufs 内にネストされた aufs パーティションを持つことはできません。別のシステムをマウントするか、別のストレージ バックエンドを使用する必要があります。
docker の makefile と hack/dind
を見ることができます .そのためには、特権モードが必要です。
最も簡単な方法は make shell
を実行することです コンテナーに入ったら、新しい docker デーモンを開始できます :)
編集:Kodingを試しましたが、実際には不可能です。コンテナー内で特権を与えられていないため、新しい Docker を開始することはできません。
はい、docker は Linux コンテナーで実行できます。
ただし、docker は lxc
でのみ実行されます 実行ドライバーと制限のない
LXC で docker を取得する方法は次のとおりです:
<オール>
lxc.aa_profile = lxc-container-default-with-nesting
であることを確認してください (うまくいかない場合、またはこのプロファイルを持っていない場合は、lxc.aa_profile = unconfined
を試してください ) config
で apparmor
によってブロックされないようにするための LXC のファイル .詳細については、/etc/apparmor.d/lxc
のファイルにアクセス (または変更) してください。 .
コンテナに lxc をインストールする必要があります。たとえば、ubuntu を使用している場合は、コンテナー apt-get install lxc
で実行します。 .
docker デーモンが --exec-driver=lxc
で呼び出されることを確認します パラメータ。 manualy docker -d --exec-driver=lxc
を発行することで、前にテストできます . ubuntu では、起動時に引数を使用するには、単純に /etc/default/docker
を編集します。 次の行があることを確認してください:
DOCKER_OPTS="--exec-driver=lxc"
更新については、このスレッドに従ってください:https://github.com/docker/docker/issues/6783
トラブルシューティングが必要な場合:
apparmor
に注意してください ホストの kern ログに記録します。docker -d ...
を起動 出力を手動で取得します。
注:他の人の回答を判断して Koding の LXC apparmor スクリプトを変更するためにホストを操作できない場合があります。いずれにせよ、LXC プロバイダーである場合、このハウツーは依然として興味深いものであり、あなたが質問で尋ねたより一般的な質問に回答します。質問のタイトルであり、より一般的なシナリオで人々を引き付ける可能性があります (私のように)。
そして、これは同じボートに乗っている他の人のための完全なガイドです.
ターミナルを起動し、入力を開始します..
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
これで、別のコンテナー内のコンテナー内にいる必要があります。
備考:
<オール>--privileged
そのためには、外側のコンテナに が必要です。-v /var/lib/docker
を使用する必要があります creack で言及されている制限を回避するため。ln -s /usr/bin/docker.io /usr/local/bin/docker
docker
と入力できるように、シンボリック リンクを作成するだけです。 docker.io
の代わりに