GNU/Linux >> Belajar Linux >  >> Linux

Bisakah buruh pelabuhan berjalan di dalam Wadah Linux?

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:

  1. Pastikan Anda memiliki lxc.aa_profile = lxc-container-default-with-nesting (jika tidak berhasil atau Anda tidak memiliki profil ini, coba lxc.aa_profile = unconfined ) di config file LXC Anda untuk memastikannya tidak akan diblokir oleh apparmor . Untuk informasi lebih lanjut, kunjungi (atau modifikasi) file di /etc/apparmor.d/lxc .

  2. Anda perlu menginstal lxc di wadah Anda. Jika Anda menggunakan ubuntu misalnya, jalankan di wadah apt-get install lxc .

  3. Pastikan daemon docker dipanggil dengan --exec-driver=lxc parameter. Anda dapat mengujinya sebelumnya dengan mengeluarkan docker -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:

  1. Bendera --privileged diperlukan di wadah luar untuk melakukannya.
  2. Anda HARUS menggunakan -v /var/lib/docker untuk menghindari batasan yang disebutkan oleh creack.
  3. ln -s /usr/bin/docker.io /usr/local/bin/docker hanya membuat tautan simbolis sehingga kita dapat mengetikkan docker bukannya docker.io

Linux
  1. Cara menginstal dan mengatur Docker Container di Rocky Linux 8

  2. Bagaimana Cara Menjalankan Perintah Di Dalam Wadah Systemd yang Berjalan?

  3. Cara Menjalankan MySQL Dalam Wadah Docker

  1. Bagaimana cara menentukan apakah suatu proses berjalan di dalam lxc/Docker?

  2. Bagaimana cara mengirim sinyal ke program yang dijalankan dalam wadah buruh pelabuhan?

  3. Apa yang ada di dalam gambar/wadah Docker?

  1. Cara Menjalankan Nginx dalam Wadah Docker:Panduan Langkah demi Langkah

  2. Bagaimana cara menambahkan pengguna ke wadah Docker?

  3. Cara menjalankan tugas cron di dalam wadah buruh pelabuhan