GNU/Linux >> Belajar Linux >  >> Linux

Cara Memasang dan Mengatur Kontainer Linux LXC di CentOS / RHEL / Ubuntu

LXC adalah singkatan dari Linux Containers.

Kontainer Linux adalah metode “virtualisasi” ringan yang menjalankan beberapa unit virtual secara bersamaan pada satu host kontrol pada satu kernel Linux.

Kernel Linux berisi cgroups untuk isolasi sumber daya (CPU, memori, blok I/O, jaringan, dll, ), yang tidak memerlukan memulai mesin virtual apa pun.

Cgroups juga menyediakan isolasi namespace untuk mengisolasi aplikasi sepenuhnya tampilan lingkungan operasi, termasuk pohon proses, jaringan, userid dan sistem file terpasang.

LXC adalah perangkat lunak sumber terbuka dan dilisensikan di bawah lisensi GNU LGPLv2.1+.

Container sebenarnya menggunakan fitur kernel yang disebut namespaces, cgroups, dan chroots, untuk mengukir area yang ditampung.

Jadi, hasil akhir dari LXC sangat mirip dengan mesin virtual, tetapi tanpa hypervisor.

1. Pra-persyaratan untuk Instal LXC

Sebelum Anda menginstal LXC, pastikan sistem Anda mutakhir menggunakan pembaruan yum seperti yang ditunjukkan di bawah ini.

# yum update

LXC bergantung pada dua perpustakaan; libpcap dan libcgroup. Ini juga memerlukan utilitas busybox dan bridge.

Instal paket yang diperlukan berikut untuk instalasi LXC kami.

# yum install libcap-devel libcgroup busybox wget bridge-utils

Mari kita pastikan bahwa kita mendapatkan semua kompiler dan alat pengembangan terkait yang diperlukan untuk mengompilasi dan menginstal perangkat lunak apa pun dari kode sumber.

# yum groupinstall "Development tools"

Untuk informasi lebih lanjut tentang grup yum, lihat artikel perintah yum kami.

2. Unduh LXC Linux Containers

Unduh versi terbaru LXC dari Linux Containers Project.

Gunakan wget untuk mengunduh bola tar versi stabil terbaru LXC ke mesin Anda seperti yang ditunjukkan di bawah ini.

# cd /

# wget http://linuxcontainers.org/downloads/lxc-1.1.5.tar.gz

Jika Anda mendapatkan pesan kesalahan terkait sertifikat saat menggunakan wget di atas, gunakan opsi no-check-certificate seperti yang ditunjukkan di bawah ini.

# wget --no-check-certificate https://linuxcontainers.org/downloads/lxc-1.1.5.tar.gz

Atau, jika mau, Anda juga dapat menggunakan git clone untuk mengunduh versi pengembangan terbaru atau versi stabil seperti yang ditunjukkan di bawah ini.

git clone git://github.com/lxc/lxc -b {branch}

Dalam perintah di atas, {branch} dapat menjadi "master" untuk cabang pengembangan saat ini, atau "stable-1.0" untuk cabang pembaruan stabil versi 1.0.

3. Konfigurasikan Adaptor Terjembatan

Selanjutnya, buat adaptor yang dijembatani dan konfigurasikan IP statis pada adaptor yang dijembatani seperti yang ditunjukkan pada contoh ifcfg-eth0 berikut. Pastikan adaptor fisik Anda mengarah ke adaptor yang dijembatani ini di ifcfg-eth0.

# cd /etc/sysconfig/network-scripts	

# vi ifcfg-br0
DEVICE="br0"
BOOTPROTO="static"
IPADDR="xxx.xxx.xxx.xxx"
NETMASK="255.255.255.xxx"
ONBOOT="yes"
TYPE="Bridge"
NM_CONTROLLED="no"

Ganti semua "xxx" di file di atas dengan nilai yang cocok dengan alamat ip dan networkmask Anda. Misalnya, ubah nilai IPADDR dalam file di atas ke alamat ip mesin Anda.

4. Instal Wadah Linux LXC

Selanjutnya, untar tar ball LXC yang telah kita download tadi, jalankan ./configure, dan lakukan make and make install, untuk menginstall LXC pada sistem Anda seperti gambar di bawah ini.

Secara default, ini akan menginstal semua binari lxc di bawah direktori /usr/local/bin.

# cd /

# tar xvfz lxc-1.1.5.tar.gz

# cd lxc-1.1.5/

# ./configure

# make && make install

Berikut ini adalah beberapa dari beberapa baris terakhir dari output untuk perintah ./configure di atas.

# ./configure
...
...
config.status: creating src/python-lxc/setup.py
config.status: creating src/lua-lxc/Makefile
config.status: executing depfiles commands
config.status: executing default commands
----------------------------
Environment:
 - compiler: gcc
 - distribution: centos
 - init script type(s): sysvinit
 - rpath: no
 - GnuTLS: no
 - Bash integration: yes
Security features:
 - Apparmor: no
 - Linux capabilities: yes
 - seccomp: no
 - SELinux: no
 - cgmanager: no
Bindings:
 - lua: no
 - python3: no
Documentation:
 - examples: yes
 - API documentation: yes
 - user documentation: no
Debugging:
 - tests: no
 - mutex debugging: no
Paths:
 - Logs in configpath: no

Berikut ini adalah beberapa baris terakhir dari output perintah make di atas.

# make
...
Building full member lists recursively...
Adding members to member groups.
...
Generating style sheet...
Generating index page...
Generating page index...
Generating example documentation...
Generating file sources...
Generating code for file /usr/save/lxc-1.1.5/src/lxc/attach_options.h...
Generating code for file /usr/save/lxc-1.1.5/src/lxc/lxccontainer.h...
Generating code for file /usr/save/lxc-1.1.5/src/lxc/lxclock.h...
Generating file documentation...
Generating docs for file /usr/save/lxc-1.1.5/src/lxc/attach_options.h...
...
Generating file member index...
make[2]: Leaving directory `/usr/save/lxc-1.1.5/doc/api'
make[2]: Entering directory `/usr/save/lxc-1.1.5/doc'
...
Making all in hooks
make[1]: Entering directory `/usr/save/lxc-1.1.5/hooks'
make[1]: Nothing to be done for `all'.
...

Berikut ini adalah beberapa baris terakhir dari output perintah make install di atas.

# make install
...
Making install in hooks
make[1]: Entering directory `/usr/save/lxc-1.1.5/hooks'
 /bin/mkdir -p '/usr/local/share/lxc/hooks'
 /usr/bin/install -c clonehostname mountecryptfsroot ubuntu-cloud-prep squid-deb-proxy-client '/usr/local/share/lxc/hooks'
...
/bin/mkdir -p /usr/local/var/lib/lxc
/bin/mkdir -p /usr/local/var/cache/lxc
 /bin/mkdir -p '/usr/local/lib/pkgconfig'
 /usr/bin/install -c -m 644 lxc.pc '/usr/local/lib/pkgconfig'
...

5. Buat Tautan Lunak untuk Pustaka Bersama LXC

Jalankan lxc-info untuk memverifikasi bahwa LXC berhasil diinstal. Jika semuanya terpasang dengan benar, kita akan melihat pesan yang mengatakan bahwa nama wadah yang diberikan (misalnya, pengujian) tidak ada. Kami belum membuat penampung apa pun pada tahap ini. Kami hanya ingin memastikan perintah ini tidak menimbulkan kesalahan terkait pustaka bersama.

# lxc-info --name test
test doesn't exist

Bergantung pada cara konfigurasi pada sistem Anda, Anda mungkin juga mendapatkan pesan kesalahan terkait pustaka liblxc.so.1 berikut.

# lxc-info --name test
lxc-info: error while loading shared libraries: liblxc.so.1: cannot open shared object file: No such file or directory

Dalam hal ini, untuk memperbaikinya, buat tautan bernama libxc.so.1 seperti yang ditunjukkan di bawah ini, yang akan mengarah ke versi file liblxc.so.x.x.x yang benar.

# ln -s /usr/local/lib/liblxc.so.1.1.5 /lib64/liblxc.so.1

# ls -l /lib64/liblxc.so.1
lrwxrwxrwx. 1 root root 30 Jan 20 09:17 /lib64/liblxc.so.1 -> /usr/local/lib/liblxc.so.1.1.5

6. Verifikasi Pengaturan dan Konfigurasi LXC

Selanjutnya, Anda juga dapat menjalankan lxc-checkconfig untuk memverifikasi bahwa lingkungan lxc Anda telah disetel dengan benar.

Berikut ini akan memiliki output dalam empat bagian yang berbeda:1) Namespaces, 2) Control Groups 3) Misc dan 4) Checkpoint/Restore. Output sebagian ditunjukkan di bawah ini.

# lxc-checkconfig
Kernel configuration not found at /proc/config.gz; searching...
Kernel configuration found at /boot/config-2.6.32-431.el6.x86_64
--- Namespaces ---
Namespaces: enabled
Utsname namespace: enabled
Ipc namespace: enabled
Pid namespace: enabled
User namespace: enabled
Network namespace: enabled
Multiple /dev/pts instances: enabled
--- Control groups ---
Cgroup: enabled
Cgroup namespace: enabled
Cgroup device: enabled
Cgroup sched: enabled
Cgroup cpu account: enabled
..
--- Misc ---
Veth pair device: enabled
Macvlan: enabled
Vlan: enabled
Bridges: enabled
Advanced netfilter: enabled
..
--- Checkpoint/Restore ---
CONFIG_EVENTFD: enabled
CONFIG_EPOLL: enabled
..
Note : Before booting a new kernel, you can check its configuration
usage : CONFIG=/path/to/config /usr/local/bin/lxc-checkconfig

Jika semuanya dikonfigurasi dengan benar di sistem Anda, pada output di atas, semua opsi di grup di atas akan mengatakan "diaktifkan".

Besok, di bagian selanjutnya dari rangkaian artikel LXC, kami akan menjelaskan cara membuat, memulai, dan menggunakan wadah linux lxc menggunakan berbagai perintah lxc.


Linux
  1. Apa Itu Podman Dan Bagaimana Cara Menginstal Podman Di Linux

  2. Cara Menginstal VMware Player di CentOS/RHEL dan Ubuntu

  3. Cara Menginstal Dan Mengatur Suricata IDS di Ubuntu 20.04

  1. Cara menginstal Go di Fedora dan Rocky Linux/Centos/RHEL

  2. Cara Instal dan Konfigurasi OpenLDAP di CentOS / RHEL Linux

  3. Cara Menginstal dan mengkonfigurasi telnet di RHEL / CentOS 5,6

  1. Cara menginstal redmine di RHEL 8 / CentOS 8 Linux

  2. Cara menginstal dan mengatur layanan contoh dengan xinetd di RHEL 8 / CentOS 8 Linux

  3. Cara menginstal paket zip/unzip di Linux CentOS/RHEL 7 dan 8