Linux Containers (LXC) adalah teknologi virtualisasi ringan dan mereka memiliki berbagai kegunaan. Ini adalah bagian dari kernel Linux, dan dapat membiarkan 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 Penjara FreeBSD.
Sebagai contoh, mesin yang saya tulis adalah laptop yang menjalankan Linux Mint 18, ditenagai oleh prosesor Intel Atom, dan memiliki sedikit RAM 2 GB. Namun, saya menjalankan tiga wadah Linux, masing-masing dengan instance dari server web Apache berjalan, tanpa kinerja besar. Ini tidak akan terpikirkan dengan mesin virtual tradisional seperti VirtualBox. Jadi, jika Anda ingin menjalankan banyak distro di sistem Linux Anda, Linux Containers harus melakukan pekerjaan untuk Anda.
Menginstal dan Mengkonfigurasi Wadah Linux
Kami sedang menyiapkan LXC di Linux Mint 18 64-bit. Petunjuk instalasi yang disediakan di sini juga akan berfungsi tanpa dimodifikasi di Ubuntu 16.04 dan lebih tinggi. Jika Anda menggunakan distro lain, silakan lihat dokumentasi resmi distro Anda jika sesuatu tidak berfungsi seperti yang diharapkan. Keakraban dengan baris perintah dan pemecahan masalah umum juga diasumsikan.
Prasyarat
Berikut adalah beberapa hal yang harus Anda atur untuk mulai menggunakan banyak distro:
1. Instal LXC dan perangkat lunak prasyarat lainnya menggunakan:
[sourcecode] sudo untuk menginstal 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" & amp; amp; gt; ~ / .config / lxc / default.conf
echo "lxc.id_map = g 0 100000 65536" & amp; amp; gt; & amp; amp; amp; gt; ~ / .config / lxc / default.conf
echo "lxc.network.type = veth" & amp; amp; gt; & amp; amp; gt; ~ / .config / lxc / default.conf
echo "lxc.network.link = lxcbr0" & amp; amp; gt; & amp; amp; amp; gt; ~ / .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:
[sourcecode] sudo usermod –add-subuids 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 Anda telah menginstal LXC Container bersama dengan perangkat lunak prasyarat lainnya, berikut adalah langkah-langkah untuk mengatur Container:
1. Dalam contoh ini, kami akan menyiapkan wadah Ubuntu, bernama ubu1
. Untuk melakukannya, jalankan perintah berikut:
[sourcecode] lxc-create –template unduh –nama ubu1 [/ sourcecode]
2. Di sini, parameter –template
memberi tahu lxc untuk mengunduh gambar yang telah dikonfigurasikan dari internet, sementara parameter –name
menentukan nama wadah - ubu1
dalam kasus ini. Anda dapat menggunakan nama yang Anda suka.
3. Sekarang Anda akan melihat daftar gambar distro yang didukung :
4. Masukkan spesifikasi distribusi yang ingin Anda instal. Saya akan menginstal versi 64-bit Ubuntu 16.04 (codename xenial) di sini:
5. Jika Anda ingin menginstal gambar secara non-interaktif, perintah berikut ini mencapai hasil yang sama seperti di atas:
[sourcecode] lxc-create -t download -n ubu1 - -distern ubuntu-rilis xenial –arch amd64 [/ sourcecode]
6. LXC sekarang akan mengunduh dan menginstal minimal gambar xenial Ubuntu pada sistem host Anda. Pengunduhan dan pemasangan mungkin memakan waktu agak lama bergantung pada koneksi internet Anda dan kecepatan PC Anda. Setelah instalasi, Anda akan melihat layar seperti ini:
Anda sekarang siap menggunakan wadah Ubuntu yang baru Anda siapkan.
Menggunakan Banyak Distro dengan Wadah Linux
Memulai Kontainer
Mulai wadah Anda menggunakan perintah lxc-start
:
[sourcecode] lxc-start -n ubu1 -d [/ sourcecode]
Di sini, -n
parameter menentukan nama wadah yang ingin Anda mulai ( ubu1
dalam kasus ini), dan -d
parameter membuatnya berjalan di latar belakang .
Anda dapat memverifikasi bahwa wadah dimulai dengan menggunakan perintah lxc-ls
:
[sourcecode] lxc-ls -f [/ sourcecode]
Parameter -f
memungkinkan pelaporan mewah . Di sini, Anda dapat melihat bahwa saya memiliki dua wadah - satu Debian (dihentikan) dan satu Ubuntu (berjalan).
Mengakses dan Menggunakan Wadah Anda
Anda dapat mengakses konsol kontainer menggunakan perintah lxc-attach
:
[sourcecode] lxc-attach -n ubu1 [/ sourcecode]
Anda sekarang akan memiliki shell root pada wadah Anda. Disarankan agar Anda mengatur kata sandi untuk pengguna root, dan membuat akun pengguna biasa :
[kode sumber] 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:
[sourcecode] untuk menginstal wget openssh-server htop tmux nano iptables [/ sourcecode]
Menghentikan Kontainer Anda
Setelah Anda selesai bermain dengan wadah, gunakan perintah exit
untuk kembali ke sistem host . Sekarang gunakan perintah lxc-stop
untuk menghentikan wadah Anda :
[sourcecode] lxc-stop -n ubu1 [/ sourcecode]
Ini akan membuat wadah dimatikan dengan bersih dan tidak akan menghabiskan lebih banyak sumber daya pada sistem Anda, kecuali untuk ruang disk.
Kloning dan Foto
Klon
Setelah Anda menginstal program dalam wadah dan mengkonfigurasinya sesuai keinginan Anda, Anda mungkin ingin membuat satu atau beberapa salinannya untuk memudahkan penyediaan. Anda dapat melakukan ini dengan membuat klon, yang merupakan replika dari sebuah wadah.
Misalnya, untuk membuat tiruan dari wadah ubu1
(sebut saja ubu2
), pertama hentikan wadah menggunakan lxc-stop
, kemudian gunakan perintah lxc-copy
:
[sourcecode] lxc-stop -n ubu
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 lxc-ls
:
Jepretan
Misalkan Anda akan membuat beberapa yang berpotensi berbahaya atau sulit untuk dipulihkan dari perubahan ke wadah, seperti mengkonfigurasi ulang server web. Untuk meminimalkan kerusakan, Anda dapat membuat potret wadah sebelum membuat perubahan seperti itu. Jika terjadi kesalahan selama konfigurasi, Anda cukup menghentikan wadah dan memulihkannya ke kondisi kerja sebelumnya dengan mengembalikan snapshot.
Untuk membuat foto, hentikan dulu wadah :
[sourcecode] lxc-stop -n ubu1 [/ sourcecode]
Kemudian, buat snapshot menggunakan perintah lxc-snapshot
:
[sourcecode] lxc-snapshot -n ubu1 [/ sourcecode]
Ini menciptakan snapshot yang disebut snap0
. Setiap snapshot berikutnya yang Anda buat menggunakan perintah ini akan disebut snap1, snap2, dll.
Setelah ini, Anda dapat memulai wadah, dan melakukan perubahan yang Anda inginkan. Jika suatu saat Anda ingin kembali ke snapshot yang Anda buat, hentikan wadahnya, dan gunakan perintah lxc-snapshot
dengan parameter -r
untuk mengembalikan snapshot :
[sourcecode] lxc-snapshot -r snap0 -n ubu1 [/ sourcecode]
Ini akan mengembalikan snapshot snap0
ke wadah ubu1
.
Mulai Kontainer secara otomatis saat Boot
Anda dapat membuat sebuah wadah, misalnya, wadah server web, memulai secara otomatis ketika Anda mem-boot sistem Anda. Untuk melakukan ini, buka file konfigurasi penampung, yang terletak di $HOME/.local/share/lxc//config
, dan tambahkan baris berikut :
[sourcecode] lxc.start.auto = 1
lxc.start.delay = 5 [/ sourcecode]
Baris pertama menentukan bahwa wadah harus dimulai saat boot. Yang kedua memberitahu sistem untuk menunggu 5 detik sebelum memulai wadah berikutnya, jika ada.
Penyelesaian masalah
Jika Anda kesulitan memulai wadah, hal pertama yang harus dicoba adalah menjalankan perintah lxc-start
dalam mode Foreground . Sebagai contoh:
[sourcecode] lxc-start -n ubu1 -F [/ sourcecode]
Ini akan menunjukkan kepada Anda kesalahan pada konsol saat ini, yang sangat berguna dalam mengidentifikasi sifat masalah.
Masalah Dengan Menjalankan Beberapa Kontainer Secara Bersamaan
Jika Anda mencoba menjalankan beberapa wadah 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 oleh pengguna dengan memodifikasi file /etc/lxc/lxc-usernet
sebagai root . Mungkin terlihat seperti ini:
[sourcecode] # USERNAME TYPE BRIDGE COUNT
beebom veth lxcbr0 5 [/ sourcecode]
Anda dapat mengubah nomor di akhir (5 dalam contoh ini), ke nomor yang lebih besar seperti 10. Ini akan memungkinkan Anda menjalankan hingga 10 kontainer sekaligus.
Penggunaan Wadah Linux Lainnya
Wadah Linux memiliki berbagai kegunaan. Anda dapat menggunakannya sebagai kotak uji ringan, misalnya, untuk menguji berbagai konfigurasi server web atau basis data sebelum mengirimkannya ke server produksi. Kegunaan lain adalah untuk menguji bagaimana aplikasi berjalan pada berbagai versi 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 walaupun dimungkinkan untuk menjalankan aplikasi GUI dalam sebuah wadah, dibutuhkan banyak waktu dan upaya, dan karenanya tidak direkomendasikan. Jika Anda ingin menjalankan aplikasi GUI di kotak pasir, lihat artikel kami tentang cara memasang aplikasi kotak pasir di Linux.
Jalankan Banyak Distro Secara Bersamaan Dengan Wadah Linux
Maka berakhirlah How-To kami dalam menjalankan beberapa distro Linux pada satu komputer, tanpa overhead mesin virtual berukuran penuh. Kegunaan teknologi ini hanya dibatasi oleh kreativitas Anda, jadi jangan ragu untuk bereksperimen dan mencari tahu kasus penggunaan baru. Jika Anda kesulitan mengatur wadah, jangan ragu untuk bertanya kepada kami di bagian komentar.