GNU/Linux >> Belajar Linux >  >> Linux

Cara Membuat dan Meluncurkan Kontainer Linux LXC dengan Perintah LXC

LXC Containers adalah cara yang sangat cepat untuk membuat lingkungan virtual psuedo.

Pada artikel LXC sebelumnya, kami menjelaskan cara menginstal dan mengkonfigurasi wadah linux LXC.

Dalam tutorial ini, kami akan menjelaskan cara membuat container Linux baru, memulai container, dan login ke konsol virtual LXC untuk menggunakan container baru.

Untuk demonstrasi, kami akan membuat wadah virtual CentOS LXC dalam tutorial ini, tetapi Anda dapat membuat wadah virtual untuk hampir semua distro Linux yang Anda inginkan.

1. Template Kontainer LXC

Linux Containers LXC secara default menyediakan template container untuk beberapa distro linux populer. Berikut ini adalah beberapa template LXC yang dapat langsung Anda gunakan.

  • CentOS
  • Ubuntu
  • Fedora
  • OpenSUSE
  • Gentoo
  • Debian
  • Oracle Linux
  • ArchLinux

Semua template LXC yang tersedia berada di bawah direktori /usr/local/share/lxc/templates.

# ls -1 /usr/local/share/lxc/templates
lxc-alpine
lxc-altlinux
lxc-archlinux
lxc-busybox
lxc-centos
lxc-cirros
lxc-debian
lxc-download
lxc-fedora
lxc-gentoo
lxc-openmandriva
lxc-opensuse
lxc-oracle
lxc-plamo
lxc-sshd
lxc-ubuntu
lxc-ubuntu-cloud

2. Buat Wadah menggunakan lxc-create

Untuk membuat container, gunakan perintah lxc-create seperti yang ditunjukkan di bawah ini.

Pada perintah berikut:

  • –n opsi menunjukkan nama wadah
  • –t opsi menunjukkan templat yang digunakan untuk membuat wadah. Dalam contoh ini, kami menggunakan template lxc-centos untuk membuat wadah CentOS.

Dalam contoh ini, ini akan membuat wadah CentOS dengan instalasi minimal centos.

Ini akan mengunduh semua paket yang diperlukan untuk menjalankan CentOS minimal (misalnya, sekitar 140 paket), dan menginstalnya sebagai bagian dari wadah MyCentOSContainer1

# lxc-create -n MyCentOSContainer1 -t /usr/local/share/lxc/templates/lxc-centos
/usr/local/share/lxc/templates/lxc-centos
Host CPE ID from /etc/system-release-cpe: cpe:/o:centos:linux:6:GA
dnsdomainname: Unknown host
Checking cache download in /usr/local/var/cache/lxc/centos/x86_64/6/rootfs ... 
Downloading centos minimal ...
...
...
  Installing : libgcc-4.4.7-16.el6.x86_64       1/142 
  Installing : setup-2.8.14-20.el6_4.1.noarch   2/142 
  Installing : filesystem-2.4.30-3.el6.x86_64   3/142 
...
  Verifying  : gzip-1.3.12-22.el6.x86_64        139/142 
  Verifying  : mingetty-1.08-5.el6.x86_64       140/142 
  Verifying  : libxml2-2.7.6-20.el6_7.1.x86_64  141/142 
  Verifying  : 1:findutils-4.4.2-6.el6.x86_64   142/142 
...
Download complete.
Copy /usr/local/var/cache/lxc/centos/x86_64/6/rootfs to /usr/local/var/lib/lxc/MyCentOSContainer1/rootfs ... 
Copying rootfs to /usr/local/var/lib/lxc/MyCentOSContainer1/rootfs ...

3. Kata Sandi Root untuk Wadah LXC

Kata sandi root untuk wadah LXC disimpan di bawah:/usr/local/var/lib/lxc/{container-name}/tmp_root_pass

Jadi, pada contoh di atas, untuk wadah LXC yang baru saja kita buat, kata sandi root sementara ada di bawah ini:

# cat /usr/local/var/lib/lxc/MyCentOSContainer1/tmp_root_pass
Root-MyCentOSContainer1-pf7qMB

Anda dapat mengubah kata sandi root container Anda kapan saja, meskipun container Anda dimatikan dengan menggunakan chroot dari host kontrol seperti yang ditunjukkan di bawah ini.

# chroot /usr/local/var/lib/lxc/MyCentOSContainer1/rootfs passwd
Changing password for user root.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.

4. Mulai LXC Linux Container menggunakan lxc-start

Setelah wadah dibuat, gunakan lxc-start seperti yang ditunjukkan di bawah ini untuk memulai wadah Anda.

# lxc-start -n MyCentOSContainer1
lxc-start: cgfs.c: handle_cgroup_settings: 2077 Device or resource busy - failed to set memory.use_hierarchy to 1; continuing

CentOS release 6.6 (Final)
Kernel 2.6.32-431.el6.x86_64 on an x86_64

MyCentOSContainer1 login: init: rcS main process (8) killed by TERM signal
Entering non-interactive startup
Bringing up loopback interface:               [  OK  ]
Bringing up interface eth0:
Determining IP information for eth0... done.  [  OK  ]
Starting system logger:                       [  OK  ]
Mounting filesystems:                         [  OK  ]
Generating SSH2 RSA host key:                 [  OK  ]
Generating SSH1 RSA host key:                 [  OK  ]
Generating SSH2 DSA host key:                 [  OK  ]
Starting sshd:               				  [  OK  ]

CentOS release 6.6 (Final)
Kernel 2.6.32-431.el6.x86_64 on an x86_64

MyCentOSContainer1 login:

Jika Anda mendapatkan pesan kesalahan “container failed to start” berikut, berarti ada yang salah dengan konfigurasi Anda.

# lxc-start -n MyCentOSContainer1
lxc-start: lxc_start.c: main: 344 The container failed to start.
lxc-start: lxc_start.c: main: 346 To get more details, run the container in foreground mode.
lxc-start: lxc_start.c: main: 348 Additional information can be obtained by setting the --logfile and --logpriority options.

Untuk mengetahui dengan tepat apa yang salah dengan konfigurasi Anda, jalankan wadah LXC di latar depan menggunakan opsi -F seperti yang ditunjukkan di bawah ini.

Jika Anda mendapatkan pesan kesalahan berikut, "gagal melampirkan ke jembatan", "gagal membuat netdev", "gagal membuat jaringan", maka adaptor jembatan tidak dikonfigurasi dengan benar di sistem Anda.

Periksa pengaturan ifcfg-br0 yang kami sebutkan di artikel penyiapan LXC Linux Container kami sebelumnya, untuk memastikan Anda memiliki pengaturan konfigurasi bridge dengan benar dan berfungsi.

# lxc-start -F -n MyCentOSContainer1
lxc-start: conf.c: instantiate_veth: 2796 failed to attach 'veth8VPW29' to the bridge 'lxcbr0': Operation not permitted
lxc-start: conf.c: lxc_create_network: 3079 failed to create netdev
lxc-start: start.c: lxc_spawn: 935 failed to create the network
lxc-start: start.c: __lxc_start: 1192 failed to spawn 'MyCentOSContainer1'
lxc-start: lxc_start.c: main: 344 The container failed to start.
lxc-start: lxc_start.c: main: 348 Additional information can be obtained by setting the --logfile and --logpriority options.

5. Lihat Info Penampung menggunakan lxc-info

Untuk menampilkan informasi rinci tentang wadah Anda, gunakan perintah lxc-info seperti yang ditunjukkan di bawah ini.

# lxc-info -n MyCentOSContainer1
Name:           MyCentOSContainer1
State:          RUNNING
PID:            7696
IP:             192.168.100.101
CPU use:        1.61 seconds
BlkIO use:      32.00 KiB
Memory use:     2.63 MiB
Link:           vethLNI1UH
 TX bytes:      1.98 KiB
 RX bytes:      46.08 KiB
 Total bytes:   48.06 KiB

6. Hentikan LXC Linux Container menggunakan lxc-stop

Untuk menghentikan wadah linux LXC Anda, gunakan lxc-stop seperti yang ditunjukkan di bawah ini, dan tentukan nama wadah yang ingin Anda hentikan.

# lxc-stop -n MyCentOSContainer1

7. Mengkloning Wadah yang Ada menggunakan lxc-clone

Kloning berguna saat Anda ingin mengambil snapshot dari container lama sebelum Anda membuat perubahan apa pun pada konfigurasi pada container. Anda dapat menggunakan ini sebagai metode pencadangan sederhana untuk konfigurasi container.

Kloning wadah dapat dilakukan dengan menggunakan perintah lxc-clone seperti gambar di bawah ini. Dalam hal ini, nama wadah baru adalah MyCentOSContainer2

# lxc-clone -o MyCentOSContainer1 -n MyCentOSContainer2
Created container MyCentOSContainer2 as copy of MyCentOSContainer1

8. Hapus Kontainer yang Ada menggunakan lxc-destory

Untuk menghapus wadah yang ada, gunakan perintah lxc-destroy seperti yang ditunjukkan di bawah ini.

# lxc-destroy -n MyCentOSContainer2

9. Hubungkan ke Konsol Kontainer Linux LXC

Untuk terhubung ke konsol penampung, gunakan perintah lxc-console berikut.

# lxc-console -n MyCentOSContainer1
Connected to tty 1
Type Ctrl+a q to exit the console, Ctrl+a Ctrl+a to enter Ctrl+a itself

CentOS release 6.6 (Final)
Kernel 2.6.32-431.el6.x86_64 on an x86_64

MyCentOSContainer1 login:

10. Ubah Konfigurasi LXC menggunakan lxc-config

Untuk mengubah konfigurasi LXC, Anda dapat menggunakan perintah lxc-config.

Pertama, gunakan opsi lxc-config -l, yang hanya akan menampilkan semua konfigurasi yang tersedia seperti yang ditunjukkan di bawah ini.

# lxc-config -l
lxc.default_config
lxc.lxcpath
lxc.bdev.lvm.vg
lxc.bdev.lvm.thin_pool
lxc.bdev.zfs.root
lxc.cgroup.use
lxc.cgroup.pattern

Selanjutnya, gunakan opsi lxc.default_config seperti yang ditunjukkan di bawah ini untuk melihat informasi tentang setiap file konfigurasi dan parameter terkaitnya.

# lxc-config lxc.default_config
/usr/local/etc/lxc/default.conf

# cat /usr/local/etc/lxc/default.conf
lxc.network.type = veth
lxc.network.link = virbr0
lxc.network.flags = up

Perintah berikut akan menampilkan patch LXC tempat semua container disimpan.

# lxc-config lxc.lxcpath
/usr/local/var/lib/lxc

Seperti yang kita lihat di bawah, kita melihat dua wadah yang kita buat di bawah direktori ini.

# cd /usr/local/var/lib/lxc

# ls
MyCentOSContainer1  MyCentOSContainer2

Di bawah direktori container, Anda akan melihat file konfigurasi, yang berisi semua informasi konfigurasi dasar untuk container tertentu seperti yang ditunjukkan di bawah ini.

# cd /usr/local/var/lib/lxc/MyCentOSContainer1

# vi config
lxc.network.type = veth
lxc.network.link = virbr0
lxc.network.hwaddr = fb:bb:f2:87:e8:17
lxc.network.flags = up
lxc.rootfs = /usr/local/var/lib/lxc/MyCentOSContainer1/rootfs
lxc.include = /usr/local/share/lxc/config/centos.common.conf
lxc.arch = x86_64
lxc.utsname = MyCentOSContainer1

Linux
  1. Cara Menggunakan Perintah 'cat' dan 'tac' dengan Contoh di Linux

  2. Temukan File dengan Perintah Temukan dan Temukan di Linux

  3. Cara Menyalin / Memindahkan File dan Direktori di Linux dengan perintah "cp" dan "mv"

  1. Cara Menonaktifkan Perintah Shutdown dan Reboot di Linux

  2. Cara Membuat, Mendaftar &Menghapus Wadah Docker di Linux

  3. Cara membuat dan menghapus grup pengguna di Linux

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

  2. Cara Menemukan file besar linux dengan perintah find dan du

  3. Cara Menginstal Linux KVM dan Membuat VM Tamu dengan Contoh