GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu16.04でLXDコンテナの使用を開始する

なぜLXDなのか

Linuxの世界では、現在コンテナがホットであることは周知の事実です。それらはすぐにクラウドのバックボーンになり、DevOpsの夢を実現させています。それでも、一見すると、CanonicalがDockerが支配しやすい世界でUbuntu用の新しいコンテナシステムを開発するのは少し冗長に思えます。では、なぜ彼らはそれをしたのでしょうか?従来の仮想マシンとDockerの中間点を埋めるため。 Canonicalは、「コンテナの速度と密度を従来の仮想マシンのセキュリティと組み合わせることで、CanonicalのLXDはLinux向けの次世代のコンテナハイパーバイザーです」と述べています。それだけでなく、DockerコンテナーをLXDコンテナー内で実行できるため、潜在的なコンテナー構成に別の側面が追加されます。

LXDは、既存のLXC Linuxコンテナーハイパーバイザーを独自のツールセットで拡張したものであり、UbuntuがDebianと行うのと同様の関係を共有し、既存の優れたソフトウェアを使用して合理化することを目的としています。 Canonicalの最新のUbuntuLTSリリースである16.04では、LXDは十分に統合されており、コンテナーの作成と管理をシームレスにする明確で簡潔なCLIツールと簡単に使用できます。

初期設定

Ubuntu 16.04でLXDを使い始めるのは、予想されるほど簡単です。 Canonicalは、インストールを1つのパッケージに凝縮し、これを1つのコマンドインストールにしました。単純なsudo apt-get install lxd 始めるために必要なすべてを手に入れます。

<中央>

再起動せずに必要なコマンドを実行できるようにユーザーを「lxd」グループに追加するには、newgrp lxdを実行します。 。その後、LXDハイパーバイザーのセットアップを進めるためのすべてが明確になります。 sudo lxd initを実行しています セットアッププロセスを開始します。

<中央>

初期設定プロセスは、LXDハイパーバイザーの構成に必要な基本情報を要求する一連のコマンドラインプロンプトで構成されています。プロセスはすべて非常に簡単で、ストレージタイプ、IPアドレス、ポート番号、パスワード、接続がブリッジされているかどうかなどの情報を要求します。



一連のプロンプトの後、セットアップは、LXDハイパーバイザーのネットワーク構成に関する一連の質問を含むテキストベースのインターフェイスに移行します。このプロセスでは、カスタムサブネットとDHCPを備えたブリッジIPv4およびIPv6ネットワークが作成されます。このように、LXDは、展開されているすべてのコンテナーの仮想ルーターとして機能し、これらの仮想ネットワークに単一の構成ポイントを提供します。

明らかに、これはLXDが「両方の長所」のソリューションとして輝いている時期の1つです。もちろん、CanonicalがDebianスタイルの設定メニューを提供して、プロセスをウォークスルーし、ほとんど無意識のうちに簡単にすることもできます。構成が完了すると、コマンドラインにダンプして戻り、成功したことを示す短いメッセージが表示されます。

<中央>

LXDイメージとコンテナ

コンテナの設定

Dockerと同様に、LXDはイメージベースです。画像を取得するための3つの主要なオプションを提供します。リモート、組み込み、およびローカルのインポート。 LXDに付属しているリモートソースとローカルソースがいくつかあります。利用可能なソースを確認するには、lxc remote listを実行するだけです。 、および現在利用可能なソースに関する情報を表示する便利なコマンドラインテーブルが表示されます。

<中央>

この記事の目的上、ローカルソースが最良かつ最も簡単なオプションであるように思われました。あらゆる展開の出発点として最適なクリーンなUbuntuイメージが提供されています。これは、「両方の長所」のもう1つの瞬間です。 LXDコンテナーは、単一のアプリケーションを実行するように調整された簡素化されたコンテナーを持つ代わりに、本格的な仮想マシンに近くなります。

コマンドラインアクセスが可能で、パッケージをインストールする機能もあります。同時に、LXDは、コンテナーを管理し、コンテナーとの間でファイルをプッシュおよびプルするための優れたコマンドラインツールを提供します。 Ubuntu 16.04コンテナーを起動するには、lxc launch ubuntu:16.04 name-of-containerを実行するだけです。 。 LXDは画像を取得し、コンテナを作成して、コンテナを起動します。

<中央>

LXDコンテナの操作

lxc listを使用すると、コンテナのステータスを簡単に確認できます。 。 lxc stop name-of-containerを使用すると、コンテナの起動と停止も同じように簡単です。 およびlxc start name-of-container



Dockerのような従来のコンテナーに対するLXDの明らかな利点の1つは、コンテナーをパックしてデプロイし、そのままにしておくのではなく、実行中のコンテナーを編集して更新できることです。ホストシステムとコンテナ間でファイルを渡す場合、LXDにはプッシュコマンドとプルコマンドがあり、ファイルをやり取りできます。さらに複雑なことが必要な場合、LXDは、実行中のコンテナーにアクセスして完全なシェルを取得するための優れたコマンドラインツールを提供します。コンテナー実行のシェルにアクセスするには、lxc exec name-of-container -- /bin/bash

<中央>

コンテナのシェルには完全なLinuxファイルシステムがあり、コマンドラインから、イメージにバンドルされているか、後でコンテナにインストールされたツールにアクセスできます。これにより、LXDコンテナーは、更新とDockerを含む複数のアプリケーションを実行できます。このようにして、DevOpsエンジニアは、データベースとWebサーバーを実行するLXDコンテナーと、Dockerコンテナーで実行されるいくつかのWebアプリケーションを備えたDockerをデプロイできます。
もちろん、これは多くの可能性の1つにすぎませんが、ここでの重要な側面です。 LXDは方程式に別のレイヤーを追加し、ソフトウェアスタックを構成する際の柔軟性を高めます。

結論

LXDを使用したこの最も基本的な試行からも、Canonicalが完全なLinux仮想化とDockerコンテナーの間に明確な中間点を作成するという目標を達成したことは明らかです。 LXDは、DevOpsエンジニアがツールボックスへの追加を真剣に検討する必要があるツールです。


Ubuntu
  1. lsの使用を開始する

  2. LinuxでPostgreSQLを使い始める

  3. じゅじゅを始めるには?

  1. Zshの使用を開始する

  2. マルチパス入門–UbuntuVMの実行

  3. LXD コンテナーと静的 IP を使用したネットワーキング

  1. GnuCashの使用を開始する

  2. Etcher.ioを使い始める

  3. Tmuxを使い始める