Wadah Linux (LXC), adalah metode virtualisasi tingkat sistem operasi ringan yang memungkinkan kita untuk menjalankan beberapa sistem Linux (wadah) yang terisolasi pada satu host. LXC tidak menyediakan semua fitur perangkat lunak virtualisasi standar seperti VMware, VirtualBox, dan KVM melainkan menyediakan lingkungan virtual yang memiliki CPU, memori, blok I/O, jaringan sendiri. LXC menciptakan lingkungan Linux yang sedekat instalasi Linux standar tetapi tanpa memerlukan kernel terpisah.
LXC adalah perangkat lunak gratis, dan dirilis di bawah lisensi GNU LGPLv2.1+. Proyek LXC disponsori oleh Canonical Ltd yang berada di balik OS Ubuntu.
Dalam panduan ini, saya akan menunjukkan cara menginstal LXC, dan cara membuat dan mengelola LXC menggunakan baris perintah serta menggunakan Portal Web LXC .
Prasyarat
LXC tidak tersedia di repo Basis. Jadi kita perlu menambahkan repositori EPEL ke server menggunakan perintah berikut.
# yum -y install epel-release
Kontainer LXC menggunakan jaringan jembatan untuk memiliki akses ke/dari jaringan eksternal, sebelum memulai penampung kita harus membuat jembatan jaringan di CentOS 7 / RHEL 7 . Nama jembatan jaringan harus “virbr0”
Instal LXC di CentOS 7
Setelah Anda menyelesaikan prasyarat, saatnya untuk menginstal LXC. Instal LXC dan paket penting lainnya yang diperlukan agar container berfungsi dengan baik.
# yum -y install lxc lxc-templates libcap-devel libcgroup busybox wget bridge-utils lxc-extra
Jalankan perintah berikut untuk memeriksa semuanya baik-baik saja untuk menjalankan container.
# lxc-checkconfig Konfigurasi kernel tidak ditemukan di /proc/config.gz; mencari... Konfigurasi kernel ditemukan di /boot/config-3.10.0-327.el7.x86_64 --- Namespaces --- Namespaces:diaktifkan Utsname namespace:diaktifkan Ipc namespace:diaktifkan Pid namespace:diaktifkan User namespace:diaktifkan Network namespace :diaktifkan Beberapa instance /dev/pts:diaktifkan--- Grup kontrol --- Cgroup:diaktifkan Cgroup clone_children flag:diaktifkan Perangkat Cgroup:diaktifkan Cgroup sched:diaktifkan Akun cpu Cgroup:diaktifkan Cgroup memory controller:diaktifkan Cgroup cpuset:diaktifkan-- - Lain-lain --- Perangkat pasangan Veth:diaktifkan Macvlan:diaktifkan Vlan:diaktifkan Jembatan:diaktifkan Lanjutan netfilter:diaktifkan CONFIG_NF_NAT_IPV4:diaktifkan CONFIG_NF_NAT_IPV6:diaktifkan CONFIG_IP_NF_TARGET_MASQUERADE:diaktifkan CONFIG_IP6_NF_TARGET_MASQUERADE Titik pemeriksaan diaktifkan kembali-CHEXT_TARGET_-CHECKSUM_TARGET_-CHEXT_TARGET_store_FIG_NET diaktifkan CONFIG_FHANDLE:diaktifkan CONFIG_EVENTFD:diaktifkan CONFIG_EPOLL:diaktifkan CONFIG_UNIX_DIAG:diaktifkan CONFIG_INET_DIAG:diaktifkan CONFIG_PACKET_DIAG:diaktifkan CONFIG_NETLINK_DIA G:diaktifkan Kemampuan file:diaktifkanCatatan :Sebelum mem-boot kernel baru, Anda dapat memeriksa konfigurasi penggunaan:CONFIG=/path/to/config /usr/bin/lxc-checkconfig
Membuat Wadah Linux
LXC hadir dengan template siap pakai untuk memudahkan pemasangan container, dan Anda dapat membuat daftar template yang tersedia menggunakan perintah berikut.
# ls /usr/share/lxc/templates/ lxc-alpine lxc-archlinux lxc-centos lxc-debian lxc-fedora lxc-openmandriva lxc-oracle lxc-debian lxc-fedora lxc-openmandriva lxc-oracle lxc-sshd l -cirros lxc-download lxc-gentoo lxc-opensuse lxc-plamo lxc-ubuntu
Untuk membuat wadah, jalankan perintah berikut.
# lxc-create -n centos_lxc -t centos
Dimana,
-n
-t
Setelah Anda mengeluarkan perintah di atas, LXC akan mulai membuat wadah dengan nama “centos_lxc “.
Contoh keluaran:
ID CPE Host dari /etc/os-release:cpe:/o:centos:centos:7 Memeriksa unduhan cache di /var/cache/lxc/centos/x86_64/7/rootfs ... Mengunduh centos minimal .. . Plugin Loaded:Basis Cepat Mirror | 3.6 KB 00:00:00 Pembaruan | 3.4 kB 00:00:00 Menentukan mirror tercepat . . . . Menyelesaikan! Unduh selesai. Salin /var/cache/lxc/centos/x86_64/7/rootfs ke /var/lib/lxc/centos_lxc/rootfs ... Menyalin rootfs ke /var/lib/lxc/centos_lxc/rootfs ... sed:tidak bisa baca /var/lib/lxc/centos_lxc/rootfs/etc/init/tty.conf:No such file or directory Menyimpan kata sandi root di '/var/lib/lxc/centos_lxc/tmp_root_pass' Kata sandi kedaluwarsa untuk root pengguna. passwd:Berhasil:tidak dapat membaca /var/lib/lxc/centos_lxc/rootfs/etc/rc.sysinit:Tidak ada file atau direktori seperti itu:tidak dapat membaca /var/lib/lxc/centos_lxc/rootfs/etc/rc. d/rc.sysinit:Tidak ada file atau direktori seperti rootfs dan konfigurasi yang telah dibuat.Edit file konfigurasi untuk memeriksa/mengaktifkan pengaturan jaringan.Kata sandi root sementara disimpan di: '/var/lib/lxc/centos_lxc/ tmp_root_pass' Kata sandi root diatur sebagai kedaluwarsa dan harus diubah saat login pertama, yang harus Anda lakukan sesegera mungkin. Jika Anda kehilangan kata sandi root atau ingin mengubahnya tanpa memulai penampung, Anda dapat mengubahnya dari host dengan menjalankan perintah berikut (yang juga akan menyetel ulang tanda kedaluwarsa): chroot /var/lib/lxc/centos_lxc/rootfs passwd
Harap perhatikan detail login di atas, dan Anda harus meminta informasi ini untuk login ke container.
Kredensial Penampung
Untuk masuk ke penampung (centos_lxc ), gunakan kata sandi root sementara yang disimpan di lokasi berikut. Dalam kasus kami, “Root-centos_lxc-KRzJLy ” adalah kata sandi root dari centos_lxc .
# cat /var/lib/lxc/centos_lxc/tmp_root_pass Root-centos_lxc-KRzJLy
atau
Setel ulang kata sandi root menggunakan perintah berikut.
# chroot /var/lib/lxc/centos_lxc/rootfs passwd
PS:Anda belum memulai penampung.
Memulai Wadah Linux
Setelah membuat container, mulai menggunakan perintah berikut, berjalan di latar belakang.
# lxc-start -n centos_lxc -d
Sekarang, ambil konsol container menggunakan perintah berikut.
Catatan:Saya menggunakan “-t” dengan “0” untuk menghubungkan penampung dengan tty0, hanya karena tty1 tidak menanggapi saya.
# lxc-console -n centos_lxc -t 0
Masukkan nama pengguna dan kata sandi untuk masuk. Anda dapat menemukan kredensial di akhir keluaran selama pembuatan wadah. Anda harus mengubah kata sandi root saat login pertama.
Contoh keluaran:
Terhubung ke tty 0 Ketikuntuk keluar dari konsol, untuk masuk Ctrl+a sendiri CentOS Linux 7 (Core) Kernel 3.10.0-327.el7.x86_64 pada x86_64 centos_lxc login:root Kata sandi:Anda harus segera mengubah kata sandi Anda (root diberlakukan) Mengubah kata sandi untuk root. (saat ini) kata sandi UNIX:Kata sandi baru:Ketik ulang kata sandi baru: [root@centos_lxc ~]#
Setelah Anda masuk, Anda dapat melakukan semua pekerjaan di wadah ini seperti yang Anda lakukan di server Linux biasa.
Untuk keluar dari konsol penampung, tekan “Ctrl+a” diikuti dengan “q” . Sekarang, Anda akan dikembalikan ke terminal komputer host.
Jika Anda ingin terhubung ke container lagi ( container masih berjalan), jalankan perintah berikut.
# lxc-console -n centos_lxc -t 0
Bekerja dengan Linux Containers
Untuk membuat daftar container di komputer host, gunakan perintah berikut.
# lxc-ls centos_lxc
Juga, buat daftar container yang saat ini aktif dan berjalan di komputer host.
# lxc-ls --active centos_lxc
Karena saya hanya memiliki satu container yang sedang berjalan, itulah mengapa Anda dapat melihat output yang sama untuk kedua perintah tersebut.
Jika Anda ingin mendapatkan informasi lengkap tentang container yang sedang berjalan, jalankan perintah berikut.
Perintah di atas memberi Anda informasi terperinci (nama, status, alamat IP, CPU, memori, I/O, dan penggunaan jaringan) dari wadah “centos_lxc”.
Anda juga dapat menggunakan alamat IP untuk menyambung ke container, bukan ke konsol LXC.
Anda dapat menghentikan container yang sedang berjalan menggunakan perintah “lxc-stop”, gunakan perintah berikut untuk menghentikan container “centos_lxc”.
# lxc-stop -n centos_lxc
Mengkloning wadah Linux
LXC memiliki masa depan untuk mengkloning container dari container yang ada, jalankan perintah berikut untuk mengkloning container “centos_lxc” yang ada ke container baru “centos_lxc_clone”.
Catatan:Anda harus menghentikan container yang sedang berjalan sebelum memulai klon.
# lxc-clone centos_lxc centos_lxc_clone Membuat container centos_lxc_clone sebagai salinan centos_lxc
Periksa apakah penampung berhasil dibuat.
# lxc-ls centos_lxc centos_lxc_clone
Anda dapat mulai bekerja dengan penampung baru seperti biasa.
# lxc_start -n centos_lxc_clone -d
# lxc_console -n centos_lxc_clone -t 0 Terhubung ke tty 0 Ketikuntuk keluar dari konsol, untuk masuk Ctrl+a sendiri CentOS Linux 7 (Core) Kernel 3.10.0 -327.el7.x86_64 pada x86_64 centos_lxc_clone login:root Sandi:Login terakhir:Sab 26 Mar 14:11:17 dari 192.168.12.1 [root@centos_lxc_clone ~]#
Matikan wadah dari dalam konsol.
[root@centos_lxc_clone ~]# matikan
Mengambil Cuplikan
LXC juga memiliki masa depan lain yang disebut snapshot, gunakan perintah berikut.
Catatan:Anda harus menghentikan penampung sebelum mengambil cuplikan.
# lxc-stop -n centos_lxc_clone
Untuk demo, saya mengambil snapshot centos_lxc_clone.
# lxc-snapshot -n centos_lxc_clone
Contoh keluaran:
lxc_container:lxccontainer.c:lxcapi_snapshot:2879 Snapshot dari container yang didukung direktori yang diminta.lxc_container:lxccontainer.c:lxcapi_snapshot:2880 Membuat salinan-klon. Jika Anda ingin snapshot, makalxc_container:lxccontainer.c:lxcapi_snapshot:2881 silakan buat klon aufs atau overlayfs terlebih dahulu, snapshot thatlxc_container:lxccontainer.c:lxcapi_snapshot:2882 dan pertahankan wadah aslinya.
Untuk mengetahui di mana snapshot disimpan, jalankan perintah berikut.
# lxc-snapshot -L -n centos_lxc_clone snap0 (/var/lib/lxcsnaps/centos_lxc_clone) 2016:03:26 10:59:10
Di Centos 7, snapshot LXC disimpan di “/var/lib/lxcsnaps/ ”
Memulihkan Cuplikan
Untuk memulihkan container dari snapshot, gunakan perintah berikut.
# lxc-snapshot -r snap0 -n centos_lxc_clone
Menghapus Kontainer
Untuk menghapus wadah sepenuhnya, gunakan perintah berikut.
# lxc-destroy -n centos_lxc_clone
Menjalankan Kontainer Ubuntu di CentOS 7
Saya menemukan banyak masalah ketika saya mencoba menjalankan wadah Ubuntu di CentOS, dapat menjalankan Ubuntu dengan bantuan beberapa penyesuaian yang dibagikan di situs web lain.
Instal paket di bawah ini untuk container berbasis Debian.
# yum -y install debootstrap perl# cd /usr/sbin; ln -sf debootstrap qemu-debootstrap
Jalankan perintah berikut untuk mengganti mirror Debian ke mirror ubuntu.
# sed -i 's/DEF_HTTPS_MIRROR="https:\/\/mirrors.kernel.org\/debian"/DEF_HTTPS_MIRROR="https:\/\/mirrors.kernel.org\/ubuntu"/g' /usr/sbin/debootstrap
Terima kasih kepada unix.stackexchange.com
Dapatkan keyring tepat Ubuntu dan letakkan di direktori keyrings.
# cd /tmp# wget "http://archive.ubuntu.com/ubuntu/pool/main/u/ubuntu-keyring/ubuntu-keyring_2011.11.21.tar.gz"# tar xzf ubuntu-keyring_2011.11.21 .tar.gz# mkdir /usr/share/keyrings/# cp /tmp/ubuntu-keyring-2011.11.21/keyrings/ubuntu-archive-keyring.gpg /usr/share/keyrings/
Terima kasih kepada blog.toxa.de
Buat wadah Ubuntu menggunakan perintah berikut.
# lxc-create -n ubuntu_lxc -t ubuntuMemeriksa unduhan cache di /var/cache/lxc/precise/rootfs-amd64 ... Menginstal paket dalam templat:ssh,vim,language-pack-enMengunduh ubuntu tepat minimal .. .I:Mengambil Rilis I:Mengambil Rilis.gpg I:Memeriksa tanda tangan RilisI:Tanda tangan Rilis yang Valid (id kunci 630239CC130E1A7FD81A27B140976EAF437D05B5)I:Mengambil Paket I:Memvalidasi Paket I:Mengambil Pembuatan Paket selesai.Menyiapkan libdevmapper1.02.1 (2:1.02. 48-4ubuntu7.4) ...Menyiapkan dmsetup (2:1.02.48-4ubuntu7.4) ...update-initramfs:menunda pembaruan (pemicu diaktifkan) Pemicu pemrosesan untuk libc-bin ...pemrosesan yang ditangguhkan ldconfig sekarang mengambil placeProcessing triggers untuk initramfs-tools ...Memproses pemicu untuk resolvconf ...invoke-rc.d:policy-rc.d menolak eksekusi start.Download completeCopy /var/cache/lxc/precise/rootfs-amd64 ke /var/ lib/lxc/ubuntu_lxc/rootfs ... Menyalin rootfs ke /var/lib/lxc/ubuntu_lxc/rootfs ...Menghasilkan lokal... en_US.UTF-8... u p-to-dateGeneration selesai.Membuat kunci RSA SSH2; ini mungkin memakan waktu ...Membuat kunci SSH2 DSA; ini mungkin memakan waktu ...Membuat kunci SSH2 ECDSA; ini mungkin memakan waktu ...Zona waktu dalam wadah tidak dikonfigurasi. Sesuaikan secara manual.### Pengguna default adalah 'ubuntu' dengan kata sandi 'ubuntu'!# Gunakan perintah 'sudo' untuk menjalankan tugas sebagai root di wadah. ##
Dari output di atas, Anda dapat melihat bahwa pengguna default adalah "ubuntu", dan kata sandi untuk pengguna adalah "ubuntu".
Ambil konsol wadah Ubuntu dengan perintah berikut.
# lxc_console -n ubuntu_lxcUbuntu 12.04.5 LTS ubuntu_lxc consoleubuntu_lxc login:ubuntuPassword:Selamat datang di Ubuntu 12.04.5 LTS (GNU/Linux 3.10.0-327.10.1.el7.x86_64 x86_64) * Dokumentasi: https://help .ubuntu.com/Program yang disertakan dengan sistem Ubuntu adalah perangkat lunak bebas; ketentuan distribusi yang tepat untuk setiap program dijelaskan dalam file individual di /usr/share/doc/*/copyright.Ubuntu datang dengan BENAR-BENAR TANPA JAMINAN, sejauh diizinkan oleh hukum yang berlaku.Apakah Anda ingin memasuki konteks keamanan? [N] ubuntu@ubuntu_lxc:~$
PS:Saya belum memeriksa fungsionalitas server kecuali login, harap posting di sini untuk masalah apa pun.
Itu saja. Jadilah sosial, bagikan ini dengan teman-teman Anda.