GNU/Linux >> Znalost Linux >  >> Panels >> Docker

Přístup k webovému serveru Apache uvnitř kontejneru LXD

<šablona x-if=visible><šablona x-if=$isMobile()>

Co je LXD?

LXD (vyslovováno „Lex-Dee“) je systémový správce kontejnerů postavený na LXC (Linux Containers), který je v současné době podporován společností Canonical. Cílem LXD je poskytnout zážitek podobný virtuálnímu stroji, ale prostřednictvím kontejnerizace spíše než virtualizace. Ve srovnání s Dockerem pro poskytování aplikací nabízí LXD téměř plnou funkčnost operačního systému s dalšími funkcemi, jako jsou snímky, živé migrace, správa úložiště a další.

Hlavními výhodami LXD jsou vysoká hustota kontejnerů, které může podporovat, a výkon, který poskytuje ve srovnání s virtuálními stroji. Počítač s 2 GB RAM může dostatečně podporovat půl tuctu kontejnerů. Kromě toho LXD oficiálně podporuje obrazy kontejnerů hlavních distribucí Linuxu. Můžeme si vybrat distribuci a verzi Linuxu, které se mají spustit v kontejneru.

Tato příručka popisuje, jak nastavit Linode pro práci s LXD, jak LXD funguje v praxi a jak řešit běžné problémy.

Poznámka Pro zjednodušení výraz kontejner se v této příručce používá k popisu kontejnerů LXD.

Než začnete

  1. Pokud jste tak ještě neučinili, vytvořte si účet Linode a Compute Instance. Podívejte se na naše příručky Začínáme s Linode a Vytvoření výpočetní instance.

  2. Při aktualizaci systému postupujte podle našeho průvodce nastavením a zabezpečením výpočetní instance. Můžete také chtít nastavit časové pásmo, nakonfigurovat název hostitele, vytvořit omezený uživatelský účet a posílit přístup SSH.

Připojit úložný svazek

Při nastavování LXD můžete buď ukládat data kontejneru do externího svazku (jako je svazek blokového úložiště) nebo na disk připojený k vašemu Linode.

Blokovat úložiště

  1. Postupujte podle průvodce Jak používat blokové úložiště s Linode a vytvořte svazek blokového úložiště o velikosti nejméně 20 GB a připojte jej k vašemu Linode. Poznamenejte si název zařízení a cestu ke svazku.

    Pozor Ne naformátujte svazek a nepřidávejte jej do /etc/fstab .

    <šablona x-if=visible><šablona x-if=$isMobile()>

  2. Upravte svůj konfigurační profil a v části Nastavení spouštění vyberte GRUB 2 jako vaše jádro. Další informace naleznete v části Spuštění jádra dodaného distribucí na KVM Linode.

  3. Restartujte svůj Linode ze Správce Linode.

Disk

  1. Ve Správci Linode najděte Disky a klikněte na Vytvořit nový disk .

    <šablona x-if=visible><šablona x-if=$isMobile()>

    Poznámka Pokud je na distribučním disku vašeho Linode již přiděleno 100 % dostupného místa na disku, budete muset před vytvořením úložného disku změnit velikost disku. Další informace naleznete v části Změna velikosti disku.
  2. Upravte svůj konfigurační profil Linode. V části Blokovat přiřazení zařízení , přiřaďte svůj nový disk /dev/sdc . Poznamenejte si tuto cestu, kterou budete potřebovat při konfiguraci LXD v další části.

  3. V části Nastavení spouštění vyberte GRUB 2 jako vaše jádro.

  4. Restartujte svůj Linode ze Správce Linode.

Inicializovat LXD

  1. Nainstalujte balíčky lxd a zfsutils-linux :

    sudo apt install lxd zfsutils-linux
    
  2. Přidejte svého uživatele Unixu do lxd skupina:

    sudo usermod -a -G lxd username
    
  3. Spusťte novou relaci SSH, aby se tato změna projevila:

  4. Spusťte lxd init pro inicializaci LXD:

    sudo lxd init
    

    Během procesu inicializace budete několikrát vyzváni. Vyberte výchozí hodnoty pro všechny možnosti kromě Use existing block device? Pro tuto možnost vyberte ano a poté zadejte cestu k úložnému svazku přidanému v předchozí části.

Příkazy LXD

  1. Seznam všech kontejnerů:

    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. Seznam všech dostupných obrázků kontejneru:

    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) |
    +---------------------------------+--------------+--------+------------------------------------------+---------+----------+-------------------------------+
    .....................................................................
    Poznámka První dva sloupce pro alias a otisk poskytují identifikátor, který lze použít k určení obrázku kontejneru při jeho spouštění.
  3. Spusťte nový kontejner s názvem mycontainer :

    lxc launch ubuntu:16.04 mycontainer
    
    Creating mycontainer
    Starting mycontainer
  4. Zkontrolujte seznam kontejnerů a ujistěte se, že nový kontejner běží:

    lxc list
    
    +-------------+---------+-----------------------+---------------------------+------------+-----------+
    |    NAME     |  STATE  |         IPV4          |          IPV6             |    TYPE    | SNAPSHOTS |
    +-------------+---------+-----------------------+---------------------------+------------+-----------+
    | mycontainer | RUNNING | 10.142.148.244 (eth0) | fde5:5d27:...:1371 (eth0) | PERSISTENT | 0         |
    +-------------+---------+-----------------------+---------------------------+------------+-----------+
  5. Základní příkazy spouštějte v mycontainer :

    lxc exec mycontainer -- apt update
    lxc exec mycontainer -- apt upgrade
    
    Poznámka Znaky -- zadejte příkaz lxc příkaz neanalyzovat žádné další parametry příkazového řádku.
  6. Otevřete relaci prostředí v rámci 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]:~$
    Poznámka

    Obrázky kontejneru Ubuntu mají ve výchozím nastavení účet jiného uživatele než root s uživatelským jménem ubuntu . Tento účet může používat sudo a nevyžaduje heslo k provádění administrativních úkolů.

    sudo poskytuje přihlášení ke stávajícímu účtu ubuntu .

  7. Zobrazit protokoly kontejneru:

    lxc info mycontainer --show-log
    
  8. Zastavte kontejner:

    lxc stop mycontainer
    
  9. Odstraňte nádobu:

    lxc delete mycontainer
    

Webový server Apache s LXD

Tato část vytvoří kontejner, nainstaluje webový server Apache a přidá příslušné iptables pravidla za účelem odhalení příspěvku 80.

  1. Spusťte nový kontejner:

    lxc launch ubuntu:16.04 web
    
  2. Aktualizujte seznam balíčků v kontejneru.

    lxc exec web -- apt update
    
  3. Nainstalujte Apache do kontejneru LXD.

    lxc exec web -- apt install apache2
    
  4. Přidejte iptables pravidlo pro odhalení portu 80. Když se někdo připojí k portu 80 prostřednictvím veřejné IP adresy, toto pravidlo jej přesměruje na port 80 kontejneru.

    Budete muset nahradit your_public_ip a your_container_ip s vaší veřejnou IP a IP kontejneru v tomto příkazu.

    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. Vytvořte iptables pravidlo přetrvá i po restartu instalací iptables-persistent . Až budete vyzváni k uložení pravidel IPv4 a IPv6, klikněte na Ano abyste je zachránili.

    sudo apt install iptables-persistent
    
  6. Z místního počítače přejděte ve webovém prohlížeči na veřejnou IP adresu svého Linode. Měli byste vidět výchozí stránku Apache:

    <šablona x-if=visible><šablona x-if=$isMobile()>

Další kroky

Pokud plánujete používat jeden web, pak jeden iptables do kontejneru webu bude stačit. Pokud plánujete používat více webových stránek, budete muset nainstalovat webový server, jako je NGINX, a nastavit reverzní proxy v kontejneru. iptables pravidlo by pak přesměrovalo na tento kontejner.

Další informace

Další informace o tomto tématu můžete získat v následujících zdrojích. Přestože jsou poskytovány v naději, že budou užitečné, vezměte prosím na vědomí, že nemůžeme ručit za přesnost nebo aktuálnost externě hostovaných materiálů.

  • Úvod LXD
  • Série příspěvků na blogu na LXD 2.0
  • Komunita podpory LXD
  • Vyzkoušejte LXD Online

Docker
  1. Jak nakonfigurovat webový server Apache

  2. Průvodce LXD pro začátečníky:Nastavení webového serveru Apache

  3. Jak nastavit jednoduchý webový server Apache v kontejneru Docker

  1. Ladění webového serveru Apache Keepalive

  2. Nainstalujte webový server Apache CentOS 6 / RHEL 6

  3. Nainstalujte webový server Apache HTTPD na Fedoru 18

  1. Nainstalujte webový server Apache na openSUSE 12

  2. Nainstalujte webový server Apache na Ubuntu 12.10

  3. Chcete-li to provést, nainstalovat webový server Apache na CentOS 8 – proces krok za krokem?