Cara Menjalankan Beberapa Distro Secara Bersamaan Menggunakan Wadah Linux

Linux Containers (LXC) adalah teknologi virtualisasi yang ringan dan memiliki berbagai kegunaan. Ini adalah bagian dari kernel Linux, dan memungkinkan Anda meniru satu, atau beberapa distro Linux pada satu host Linux. Anggap saja sebagai jalan tengah antara chroot dan teknologi virtualisasi penuh seperti VirtualBox, KVM atau Xen. Teknologi serupa yang ada di dunia BSD adalah FreeBSD Jails.

Sebagai contoh, mesin yang saya gunakan untuk menulis adalah laptop yang menjalankan Linux Mint 18, ditenagai oleh prosesor Intel Atom, dan memiliki RAM 2 GB yang sedikit. Namun, saya menjalankan tiga wadah Linux, masing-masing dengan instance dari server web Apache yang berjalan, tanpa kinerja yang besar. Ini tidak terpikirkan dengan mesin virtual tradisional seperti VirtualBox. Jadi, jika Anda ingin menjalankan beberapa distro di sistem Linux Anda , Linux Containers akan melakukan pekerjaan itu untuk Anda.

Memasang dan Mengonfigurasi Wadah Linux

Kita sedang menyiapkan LXC di Linux Mint 18 64-bit. Petunjuk penginstalan yang disediakan di sini juga akan berfungsi tanpa modifikasi di Ubuntu 16.04 dan di atasnya. Jika Anda menggunakan distro lain, silakan merujuk ke dokumentasi resmi distro Anda jika ada yang tidak berfungsi seperti yang diharapkan. Keakraban dengan baris perintah dan pemecahan masalah umum juga diasumsikan.

Prasyarat

Berikut adalah beberapa hal yang harus Anda siapkan untuk mulai menggunakan beberapa distro:

1. Instal LXC dan perangkat lunak prasyarat lainnya menggunakan:

[kode sumber]sudo apt install lxc lxc-templates uidmap[/sourcecode]

2. Sekarang Anda perlu mengkonfigurasi profil Anda . Masukkan perintah berikut untuk mengaturnya:

[sourcecode]mkdir -p ~/.config/lxc echo “lxc.id_map = u 0 100000 65536” > ~/.config/lxc/default.conf echo “lxc.id_map = g 0 100000 65536” >> ~/.config/lxc/default.conf echo “lxc.network.type = veth” >> ~/.config/lxc/default.conf echo “lxc.network.link = lxcbr0” >> ~/.config/lxc/default.conf echo “$USER veth lxcbr0 2” | sudo tee -a /etc/lxc/lxc-usernet[/sourcecode]

3. Kemudian, Anda perlu mengatur izin pengguna sebagai berikut:

[kode sumber]sudo usermod –add-subgids 100000-165536 $USER sudo usermod –add-subgids 100000-165536 $USER

sudo cgm buat semua pengguna sudo cgm chown semua pengguna $(id -u) $(id -g) cgm movepid semua pengguna $$[/sourcecode]

Menyiapkan Wadah Anda

Sekarang setelah Anda menginstal LXC Container bersama dengan perangkat lunak prasyarat lainnya, berikut adalah langkah-langkah untuk menyiapkan Container:

1. Dalam contoh ini, kita akan menyiapkan wadah Ubuntu , bernama <code>ubu1</code>. Untuk melakukannya, jalankan perintah berikut:

[sourcecode]lxc-create – unduh template –nama ubu1[/sourcecode]

2. Di sini, parameter <code>–template</code> memberitahu lxc untuk mengunduh gambar yang telah dikonfigurasikan dari internet , sedangkan parameter <code>–name</code> menentukan nama wadah – <code>ubu1< /kode> dalam hal ini. Anda dapat menggunakan nama apa pun yang Anda suka.

3. Anda sekarang akan melihat daftar gambar distro yang didukung :

4. Masukkan spesifikasi distribusi yang ingin Anda instal. Saya akan menginstal Ubuntu 16.04 versi 64-bit (nama kode xenial) di sini:

5. Jika Anda ingin menginstal gambar secara non-interaktif , perintah berikut mencapai hasil yang sama seperti di atas:

[sourcecode]lxc-create -t ​​download -n ubu1 — –dist ubuntu –release xenial –arch amd64[/sourcecode]

6. LXC sekarang akan mengunduh dan menginstal image xenial Ubuntu minimal pada sistem host Anda. Pengunduhan dan penginstalan mungkin memerlukan sedikit waktu, tergantung pada koneksi internet dan kecepatan PC Anda. Setelah instalasi , Anda akan melihat layar seperti ini:

Anda sekarang siap untuk menggunakan wadah Ubuntu yang baru Anda siapkan.

Menggunakan Beberapa Distro dengan Wadah Linux

Memulai Kontainer

Mulai wadah Anda menggunakan perintah <code>lxc-start</code>:

[kode sumber]lxc-start -n ubu1 -d[/kode sumber]

Di sini, parameter <code>-n</code> menentukan nama container yang ingin Anda mulai (<code>ubu1</code> dalam kasus ini), dan parameter <code>-d</code> membuatnya berjalan di latar belakang .

Anda dapat memverifikasi bahwa wadah dimulai dengan menggunakan perintah <code>lxc-ls</code>:

[kode sumber]lxc-ls -f[/kode sumber]

Parameter <code>-f</code> memungkinkan pelaporan mewah . Di sini, Anda dapat melihat bahwa saya memiliki dua wadah – satu Debian (berhenti) dan satu Ubuntu (berjalan).

Mengakses dan Menggunakan Kontainer Anda

Anda dapat mengakses konsol penampung menggunakan perintah <code>lxc-attach</code>:

[kode sumber]lxc-attach -n ubu1[/kode sumber]

Anda sekarang akan memiliki shell root di wadah Anda. Disarankan agar Anda mengatur kata sandi untuk pengguna root, dan membuat akun pengguna biasa :

[ sourcecode ]passwd adduser beebom[/sourcecode]

Tentu saja, ganti beebom dengan nama pengguna yang Anda inginkan. Anda kemudian dapat menginstal perangkat lunak dan mengkonfigurasi wadah Anda seperti yang Anda lakukan pada sistem biasa. Misalnya, dalam wadah Debian atau Ubuntu:

[kode sumber]apt install wget openssh-server htop tmux nano iptables[/sourcecode]

Menghentikan Kontainer Anda

Setelah Anda selesai bermain dengan container, gunakan perintah <code>exit</code> untuk kembali ke sistem host . Sekarang gunakan perintah <code>lxc-stop</code> untuk menghentikan container Anda :

[kode sumber]lxc-stop -n ubu1[/kode sumber]

Ini akan membuat wadah ditutup dengan bersih dan tidak akan menghabiskan sumber daya lagi di sistem Anda, kecuali ruang disk.

Kloning dan Snapshot

Klon

Setelah Anda menginstal program dalam wadah dan mengonfigurasinya sesuai keinginan Anda, Anda mungkin ingin membuat satu atau beberapa salinannya untuk memudahkan penyediaan. Anda dapat melakukannya dengan membuat clone , yang merupakan replika persis dari sebuah wadah.

Misalnya, untuk membuat tiruan dari wadah <code>ubu1</code> (sebut saja <code>ubu2</code>), pertama-tama hentikan wadah menggunakan <code>lxc-stop</code>, lalu gunakan perintah <code>lxc-copy</code>:

[kode sumber]lxc-stop -n ubu1

lxc-copy -n ubu1 -N ubu2[/sourcecode]

Di sini, opsi -n menentukan wadah sumber , dan opsi -N menentukan nama klon . Untuk memverifikasi bahwa wadah telah dikloning, gunakan perintah <code>lxc-ls</code>:

Snapshot

Misalkan Anda akan membuat beberapa yang berpotensi berbahaya atau sulit untuk dipulihkan dari perubahan pada wadah, seperti mengkonfigurasi ulang server web. Untuk meminimalkan kerusakan, Anda dapat membuat snapshot container sebelum melakukan perubahan seperti itu. Jika terjadi kesalahan selama konfigurasi, Anda cukup menghentikan container dan memulihkannya ke status kerja sebelumnya dengan memulihkan snapshot.

Untuk membuat snapshot, pertama-tama hentikan container :

[kode sumber]lxc-stop -n ubu1[/kode sumber]

Kemudian, buat snapshot menggunakan perintah <code>lxc-snapshot</code>:

[kode sumber]lxc-snapshot -n ubu1[/kode sumber]

Ini membuat snapshot yang disebut <code>snap0</code>. Snapshot berikutnya yang Anda buat menggunakan perintah ini akan disebut snap1 , snap2 , dll.

Setelah ini, Anda dapat memulai penampung, dan membuat perubahan yang Anda inginkan. Jika suatu saat Anda ingin kembali ke snapshot yang Anda buat, hentikan container , dan gunakan perintah <code>lxc-snapshot</code> dengan parameter <code>-r</code> untuk memulihkan snapshot :

[kode sumber]lxc-snapshot -r snap0 -n ubu1[/kode sumber]

Ini akan mengembalikan snapshot <code>snap0</code> ke penampung <code>ubu1</code>.

Kontainer mulai otomatis saat Boot

Anda dapat membuat wadah, misalnya, wadah server web, mulai secara otomatis saat Anda mem-boot sistem Anda. Untuk melakukannya, buka file konfigurasi penampung , yang terletak di <code>$HOME/.local/share/lxc/<NAME OF CONTAINER>/config</code>, dan tambahkan baris berikut :

[kode sumber]lxc.start.auto = 1 lxc.start.delay = 5[/kode sumber]

Baris pertama menentukan bahwa wadah harus dimulai saat boot. Yang kedua memberi tahu sistem untuk menunggu 5 detik sebelum memulai wadah berikutnya, jika ada.

Penyelesaian masalah

Jika Anda kesulitan memulai container, hal pertama yang harus dicoba adalah menjalankan perintah <code>lxc-start</code> dalam mode Foreground . Sebagai contoh:

[kode sumber]lxc-start -n ubu1 -F[/kode sumber]

Ini akan menunjukkan kesalahan pada konsol saat ini , yang sangat berguna dalam mengidentifikasi sifat masalah.

Masalah Dengan Menjalankan Beberapa Kontainer Secara Bersamaan

Jika Anda mencoba menjalankan beberapa penampung sekaligus, Anda mungkin melihat kesalahan seperti “Kuota tercapai”, atau “gagal membuat jaringan yang dikonfigurasi”. Ini karena Anda menjalankan lebih banyak antarmuka jaringan daripada yang diberikan kepada Anda. Anda dapat menambah jumlah jembatan jaringan yang dapat dijalankan pengguna dengan memodifikasi file <code>/etc/lxc/lxc-usernet</code> sebagai root . Mungkin terlihat seperti ini:

[sourcecode]# USERNAME TYPE BRIDGE COUNT beebom veth lxcbr0 5[/sourcecode]

Anda dapat mengubah angka di akhir (5 dalam contoh ini), ke angka yang lebih besar seperti 10. Ini akan memungkinkan Anda menjalankan hingga 10 kontainer sekaligus.

Kegunaan Lain dari Wadah Linux

Wadah Linux memiliki berbagai kegunaan. Anda dapat menggunakannya sebagai kotak uji ringan, misalnya, untuk menguji berbagai konfigurasi server web atau database sebelum memasukkannya ke server produksi. Kasus penggunaan lainnya adalah untuk menguji bagaimana aplikasi berjalan pada versi yang berbeda dari berbagai distro.

Anda juga dapat menggunakannya untuk mengisolasi aplikasi yang tidak Anda percayai – kerusakan apa pun yang dilakukan aplikasi tersebut akan terbatas pada wadahnya sendiri, dan tidak akan memengaruhi sistem host. Harap dicatat bahwa meskipun dimungkinkan untuk menjalankan aplikasi GUI dalam wadah, dibutuhkan banyak waktu dan usaha, dan karenanya tidak disarankan. Jika Anda ingin menjalankan aplikasi GUI di kotak pasir, lihat artikel kita tentang cara membuat aplikasi kotak pasir di Linux .

LIHAT JUGA: 7 Alternatif VirtualBox Terbaik yang Dapat Anda Gunakan

Jalankan Beberapa Distro Secara Bersamaan Dengan Wadah Linux

Dengan demikian, berakhirlah How-To kita dalam menjalankan beberapa distro Linux pada satu komputer, tanpa overhead mesin virtual berukuran penuh. Kegunaan teknologi ini hanya dibatasi oleh kreativitas Anda, jadi silakan bereksperimen dan temukan kasus penggunaan baru. Jika Anda mengalami masalah dalam menyiapkan wadah, jangan ragu untuk mengajukan pertanyaan kepada kita di bagian komentar.