Ya, itu mungkin. Namun, Anda tidak dapat membuat partisi aufs bersarang di dalam aufs. Anda perlu memasang sistem lain atau menggunakan backend penyimpanan yang berbeda.
Anda dapat melihat makefile docker dan hack/dind
. Anda memerlukan mode istimewa untuk melakukannya.
Cara termudah untuk mencobanya adalah dengan melakukan make shell
dan setelah berada di wadah, Anda dapat memulai daemon buruh pelabuhan baru :)
EDIT:Saya mencoba Koding dan memang tidak mungkin. Anda tidak memiliki hak istimewa dalam penampungnya sehingga Anda tidak dapat memulai buruh pelabuhan baru.
Ya, buruh pelabuhan bisa berjalan di wadah linux.
Tetapi buruh pelabuhan hanya akan berjalan dengan lxc
driver eksekusi dan dalam unconfined lxc.
Jadi, inilah cara mendapatkan buruh pelabuhan di LXC:
-
Pastikan Anda memiliki
lxc.aa_profile = lxc-container-default-with-nesting
(jika tidak berhasil atau Anda tidak memiliki profil ini, cobalxc.aa_profile = unconfined
) diconfig
file LXC Anda untuk memastikannya tidak akan diblokir olehapparmor
. Untuk informasi lebih lanjut, kunjungi (atau modifikasi) file di/etc/apparmor.d/lxc
. -
Anda perlu menginstal lxc di wadah Anda. Jika Anda menggunakan ubuntu misalnya, jalankan di wadah
apt-get install lxc
. -
Pastikan daemon docker dipanggil dengan
--exec-driver=lxc
parameter. Anda dapat mengujinya sebelumnya dengan mengeluarkandocker -d --exec-driver=lxc
secara manual . Di ubuntu, agar argumen digunakan saat startup, cukup edit/etc/default/docker
dan pastikan Anda memiliki baris:
DOCKER_OPTS="--exec-driver=lxc"
Ikuti utas ini untuk pembaruan:https://github.com/docker/docker/issues/6783
Jika Anda perlu memecahkan masalah:
- perhatikan
apparmor
log di log kern host. - luncurkan
docker -d ...
secara manual untuk mendapatkan keluaran.
Catatan:Anda mungkin tidak memiliki tangan pada host untuk memodifikasi skrip apparmor LXC di Koding dengan menilai jawaban orang lain, bagaimanapun, cara ini tetap menarik jika Anda adalah penyedia LXC, dan ini menjawab pertanyaan yang lebih umum yang Anda tanyakan di judul pertanyaan dan itu mungkin menarik orang dalam skenario yang lebih umum (seperti saya).
Dan ini adalah panduan lengkap untuk siapa pun yang berada di perahu yang sama.
Mulai terminal dan mulai mengetik..
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
Sekarang Anda harus berada di dalam wadah di dalam wadah lain.
Keterangan:
- Bendera
--privileged
diperlukan di wadah luar untuk melakukannya. - Anda HARUS menggunakan
-v /var/lib/docker
untuk menghindari batasan yang disebutkan oleh creack. ln -s /usr/bin/docker.io /usr/local/bin/docker
hanya membuat tautan simbolis sehingga kita dapat mengetikkandocker
bukannyadocker.io