GNU/Linux >> Belajar Linux >  >> Panels >> Docker

Akses Server Web Apache Di Dalam Wadah LXD

Apa itu LXD?

LXD (diucapkan "Lex-Dee") adalah manajer kontainer sistem yang dibangun di atas LXC (Linux Containers) yang saat ini didukung oleh Canonical. Tujuan dari LXD adalah untuk memberikan pengalaman yang mirip dengan mesin virtual tetapi melalui containerization daripada virtualization. Dibandingkan dengan Docker untuk memberikan aplikasi, LXD menawarkan fungsionalitas OS yang hampir lengkap dengan fitur tambahan seperti snapshot, migrasi langsung, manajemen penyimpanan, dan banyak lagi.

Manfaat utama LXD adalah kepadatan kontainer yang tinggi yang dapat didukungnya dan kinerja yang diberikannya dibandingkan dengan mesin virtual. Komputer dengan RAM 2GB cukup dapat mendukung setengah lusin wadah. Selain itu, LXD secara resmi mendukung gambar kontainer dari distribusi Linux utama. Kita dapat memilih distribusi dan versi Linux untuk dijalankan dalam container.

Panduan ini mencakup cara menyiapkan Linode agar berfungsi dengan LXD, cara kerja LXD dalam praktik, dan cara memecahkan masalah umum.

Catatan Untuk mempermudah, istilah wadah digunakan di seluruh panduan ini untuk menjelaskan wadah LXD.

Sebelum Anda Mulai

  1. Jika Anda belum melakukannya, buat akun Linode dan Compute Instance. Lihat panduan Memulai Linode dan Membuat Instans Komputasi.

  2. Ikuti panduan Menyiapkan dan Mengamankan Instans Komputasi untuk memperbarui sistem Anda. Anda mungkin juga ingin menyetel zona waktu, mengonfigurasi nama host Anda, membuat akun pengguna terbatas, dan memperkuat akses SSH.

Pasang Volume Penyimpanan

Saat menyiapkan LXD, Anda dapat menyimpan data kontainer di volume eksternal (seperti Volume Penyimpanan Blok) atau di aDisk yang dipasang ke Linode Anda.

Blokir Volume Penyimpanan

  1. Ikuti panduanCara Menggunakan Penyimpanan Blok dengan Linode Anda dan buat volume penyimpanan blok dengan ukuran minimal 20GB dan pasang ke Linode Anda. Catat nama perangkat dan jalur ke Volume.

    Hati-hati Jangan format volume dan jangan tambahkan ke /etc/fstab .

  2. Edit Profil Konfigurasi Anda dan di bawah Setelan Booting pilih GRUB 2 sebagai kernel Anda. LihatMenjalankan Kernel yang Disediakan Distribusi pada KVM Linode untuk informasi selengkapnya.

  3. Reboot Linode Anda dari Linode Manager.

Disk

  1. Di Manajer Linode, temukan Disk bagian dan klik Buat disk baru .

    Catatan Jika disk distribusi Linode Anda sudah memiliki 100% ruang disk yang tersedia yang dialokasikan untuknya, Anda perlu mengubah ukuran disk sebelum Anda dapat membuat disk penyimpanan. Lihat Mengubah Ukuran Disk untuk informasi selengkapnya.
  2. Edit Profil Konfigurasi Linode Anda. Di bawah Blokir Penetapan Perangkat , tetapkan disk baru Anda ke /dev/sdc . Catat jalur ini, yang akan Anda perlukan saat mengonfigurasi LXD di bagian berikutnya.

  3. Di bawah Setelan Booting pilih GRUB 2 sebagai kernel Anda.

  4. Reboot Linode Anda dari Linode Manager.

Inisialisasi LXD

  1. Instal paket lxd dan zfsutils-linux :

    sudo apt install lxd zfsutils-linux
    
  2. Tambahkan pengguna Unix Anda ke lxd grup:

    sudo usermod -a -G lxd username
    
  3. Mulai sesi SSH baru agar perubahan ini diterapkan:

  4. Jalankan lxd init untuk menginisialisasi LXD:

    sudo lxd init
    

    Anda akan diminta beberapa kali selama proses inisialisasi. Pilih default untuk semua opsi kecuali Use existing block device? Untuk opsi ini, pilih ya lalu masukkan jalur ke volume penyimpanan yang ditambahkan di bagian sebelumnya.

Perintah LXD

  1. Daftar semua penampung:

    lxc list
    
    Generating a client certificate. This may take a minute...
    If this is your first time using LXD, you should also run: sudo lxd init
    To start your first container, try: lxc launch ubuntu:16.04
    
    +------+-------+------+------+------+-----------+
    | NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS |
    +------+-------+------+------+------+-----------+
  2. Cantumkan semua gambar kontainer yang tersedia:

    lxc image list images:
    
    +---------------------------------+--------------+--------+------------------------------------------+---------+----------+-------------------------------+
    |              ALIAS              | FINGERPRINT  | PUBLIC |               DESCRIPTION                |  ARCH   |   SIZE   |          UPLOAD DATE          |
    +---------------------------------+--------------+--------+------------------------------------------+---------+----------+-------------------------------+
    | alpine/3.4 (3 more)             | 39a3bf44c9d8 | yes    | Alpine 3.4 amd64 (20180126_17:50)        | x86_64  | 2.04MB   | Jan 26, 2018 at 12:00am (UTC) |
    +---------------------------------+--------------+--------+------------------------------------------+---------+----------+-------------------------------+
    | alpine/3.4/armhf (1 more)       | 9fe7c201924c | yes    | Alpine 3.4 armhf (20170111_20:27)        | armv7l  | 1.58MB   | Jan 11, 2017 at 12:00am (UTC) |
    +---------------------------------+--------------+--------+------------------------------------------+---------+----------+-------------------------------+
    | alpine/3.4/i386 (1 more)        | d39f2f2ba547 | yes    | Alpine 3.4 i386 (20180126_17:50)         | i686    | 1.88MB   | Jan 26, 2018 at 12:00am (UTC) |
    +---------------------------------+--------------+--------+------------------------------------------+---------+----------+-------------------------------+
    | alpine/3.5 (3 more)             | 5533a5247551 | yes    | Alpine 3.5 amd64 (20180126_17:50)        | x86_64  | 1.70MB   | Jan 26, 2018 at 12:00am (UTC) |
    +---------------------------------+--------------+--------+------------------------------------------+---------+----------+-------------------------------+
    | alpine/3.5/i386 (1 more)        | 5e93d5f4cae1 | yes    | Alpine 3.5 i386 (20180126_17:50)         | i686    | 1.73MB   | Jan 26, 2018 at 12:00am (UTC) |
    +---------------------------------+--------------+--------+------------------------------------------+---------+----------+-------------------------------+
    | alpine/3.6 (3 more)             | 5010616d9a24 | yes    | Alpine 3.6 amd64 (20180126_17:50)        | x86_64  | 1.73MB   | Jan 26, 2018 at 12:00am (UTC) |
    +---------------------------------+--------------+--------+------------------------------------------+---------+----------+-------------------------------+
    .....................................................................
    Catatan Dua kolom pertama untuk alias dan sidik jari memberikan pengenal yang dapat digunakan untuk menentukan gambar wadah saat meluncurkannya.
  3. Luncurkan wadah baru dengan nama mycontainer :

    lxc launch ubuntu:16.04 mycontainer
    
    Creating mycontainer
    Starting mycontainer
  4. Periksa daftar penampung untuk memastikan penampung baru berjalan:

    lxc list
    
    +-------------+---------+-----------------------+---------------------------+------------+-----------+
    |    NAME     |  STATE  |         IPV4          |          IPV6             |    TYPE    | SNAPSHOTS |
    +-------------+---------+-----------------------+---------------------------+------------+-----------+
    | mycontainer | RUNNING | 10.142.148.244 (eth0) | fde5:5d27:...:1371 (eth0) | PERSISTENT | 0         |
    +-------------+---------+-----------------------+---------------------------+------------+-----------+
  5. Jalankan perintah dasar di mycontainer :

    lxc exec mycontainer -- apt update
    lxc exec mycontainer -- apt upgrade
    
    Catatan Karakter -- instruksikan lxc perintah untuk tidak mengurai parameter baris perintah lagi.
  6. Buka sesi shell di dalam mycontainer :

    lxc exec mycontainer -- sudo --login --user ubuntu
    
    To run a command as administrator (user "root"), use "sudo <command>".
    See "man sudo_root" for details.
    
    [email protected]:~$
    Catatan

    Gambar wadah Ubuntu secara default memiliki akun non-root dengan nama pengguna ubuntu . Akun ini dapat menggunakan sudo dan tidak memerlukan kata sandi untuk melakukan tugas administratif.

    sudo perintah menyediakan login ke akun yang ada ubuntu .

  7. Lihat log kontainer:

    lxc info mycontainer --show-log
    
  8. Hentikan wadah:

    lxc stop mycontainer
    
  9. Keluarkan wadah:

    lxc delete mycontainer
    

Server Web Apache dengan LXD

Bagian ini akan membuat wadah, menginstal server web Apache, dan menambahkan iptables yang sesuai aturan untuk mengekspos pos 80.

  1. Luncurkan wadah baru:

    lxc launch ubuntu:16.04 web
    
  2. Perbarui daftar paket dalam wadah.

    lxc exec web -- apt update
    
  3. Instal Apache di wadah LXD.

    lxc exec web -- apt install apache2
    
  4. Tambahkan iptables aturan untuk mengekspos port 80. Ketika seseorang terhubung ke port 80 melalui alamat IP publik, aturan ini mengarahkan mereka ke port 80 kontainer.

    Anda harus mengganti your_public_ip dan your_container_ip dengan IP publik dan IP container Anda masing-masing dalam perintah ini.

    PORT=80 PUBLIC_IP=your_public_ip CONTAINER_IP=your_container_ip sudo -E bash -c 'iptables -t nat -I PREROUTING -i eth0 -p TCP -d $PUBLIC_IP --dport $PORT -j DNAT --to-destination $CONTAINER_IP:$PORT -m comment --comment "forward to the Apache2 container"'
    
  5. Buat iptables aturan bertahan saat reboot dengan menginstal iptables-persistent . Saat diminta untuk menyimpan aturan IPv4 dan IPv6, klik Ya untuk menyelamatkan mereka.

    sudo apt install iptables-persistent
    
  6. Dari komputer lokal Anda, navigasikan ke alamat IP publik Linode Anda di browser web. Anda akan melihat halaman Apache default:

Langkah Selanjutnya

Jika Anda berencana menggunakan satu situs web, maka satu iptables aturan ke wadah situs web sudah cukup. Jika Anda berencana untuk menggunakan beberapa situs web, Anda perlu menginstal server web seperti NGINX dan mengatur proxy terbalik dalam sebuah wadah. iptables aturan kemudian akan mengarahkan ulang ke penampung ini.

Informasi Lebih Lanjut

Anda mungkin ingin berkonsultasi dengan sumber daya berikut untuk informasi tambahan tentang topik ini. Meskipun ini disediakan dengan harapan dapat bermanfaat, harap perhatikan bahwa kami tidak dapat menjamin keakuratan atau ketepatan waktu materi yang dihosting secara eksternal.

  • Pengantar LXD
  • Seri entri blog di LXD 2.0
  • Komunitas dukungan LXD
  • Cobalah LXD Daring

Docker
  1. Cara mengkonfigurasi server web Apache

  2. Menyetel Apache Web Server Keepalive

  3. Instal Apache Web Server di CentOS 8 - Proses Langkah demi Langkah untuk melakukannya?

  1. Instal server web Apache CentOS 6 / RHEL 6

  2. Instal server web Apache HTTPD di Fedora 18

  3. Instal server web Apache di openSUSE 12

  1. Instal server web Apache di Ubuntu 12.10

  2. Panduan Pemula untuk LXD:Menyiapkan Server Web Apache

  3. Cara Mengatur Server Web Apache Sederhana di Wadah Docker