1。LXCブリーフ
Linuxのコンテナは、リソース隔離メカニズムではなく、仮想化技術です。VMM(VMM仮想マシンモニタ)は、まず、主な役割を(ハイパーバイザまたはVMMと呼ばれている)は、仮想層を介して、複数のオペレーティングシステムとアプリケーションは、ハードウェアリソースを共有することを可能にする標準またはと呼ばれるハイパーバイザの仮想化技術であり、第二は、命令に仮想マシン命令を変換する上位ホストオペレーティングシステム基盤となる知識、Windowsシステムではその「仮想マシン」またはホストオペレーティングシステムと同じ、VM技術の間のLinux、コンテナとchroot環境で実行できることを意味しているとつまり、LinuxのアーキテクチャLinuxでWindows仮想マシンにインストールされていない、非常に似ています。cgroup内のリソース制限で、モジュール間のcgroupリソースの制約がコンテナよりもはるかに大きな影響を与えることを意味し、実際の分離カーネルの名前空間が実装され、絶縁されていません。
公式LXC将来の目標は、与えられた次のとおりです。
LXCの目標は、標準のLinuxインストールとしてではなく別のカーネルを必要とせずに可能な限り近い環境を作成することです。
ドッキングウィンドウの1.1 LXC関係
LXC Linuxのサンドボックスプロセスは、そのような単離され、そしてプロセス間のプロセス間の資源の配分を制御することができます。LXC道のシミュレートされた運用経験のコンテナ同様の仮想マシン、およびシステムの仮想マシンに追加の負荷を避けるために。Linuxアプリケーション層におけるLXC使用のcgroupと名前空間は、複雑な管理(LXDこれらの問題を解決する)効果的にクロスホストの移行の間に容器をサポートすることができない、「仮想マシン」(単離された裸のファイルシステム)を作成します。その中でドッキングウィンドウLXC LXCの異なる部分は、完全なオペレーティングシステムを含む、システムがコンテナです。
ドッカーを実現LXCの下地を使用していますが、ドッキングウィンドウLXCパッケージに、より優れた携帯性と操作性を提供します。ドッカーコンテナは、すべてが1つのオブジェクトにパッケージ化され、アプリケーションとその環境に依存します、あなたは、完全な、より軽量で、より可搬性が含まれていないオペレーティングシステムの場合には、共通のアプリケーションを実行することができます。だから、プラットフォーム(例えばKubernatesなど)のPaaSの礎となりました。
根本的なLXC添加に加えて、ドッカーは、次の強力な機能と高度なツールを提供しています。
ポータブル間でマシンの展開。ドッカーアプリケーションと単一のオブジェクトのフォーマットに依存しているためにすべてのバインドを定義し、オブジェクトは、任意のドッカー対応機に送信することができ、そこ行う、アプリケーション実行環境に露出保証同じですA。LXCは、ポータブルの展開のための重要な前提条件であるプロセスのサンドボックスを実装していますが、これだけでは、携帯型の展開のためには十分ではありません。ネットワーク:あなたはLXCの構成の自己定義にインストールされたアプリケーションのコピーを送信する場合、それはほぼ確実に、それは私に関連した特定のコンピュータの設定に関連するお使いのマシン上で実行する我々のマシンが好きではありませんストレージ、ロギング、リリース、およびように。同じコンテナのドッキングウィンドウが異なるホストが多くの異なる構成を持っている場合でも、多くの異なるマシン上で実行できるようにドッキングウィンドウは、これらの特定の設定のための抽象機械を定義します。
アプリケーション中心。ドッキングウィンドウはアプリケーションではなく、マシンを展開するために最適化されています。これは、そのAPI、ユーザーインターフェース、設計およびドキュメントに反映されています。これとは対照的に、LXCアシスタントスクリプトコンテナは軽量なマシンとして-基本的に速く、少ないメモリサーバを起動します。私たちは、船がそこに停止しないと信じています。
ビルドを自動化。ドッカーは自動的に、アプリケーションの依存関係の完全な制御、ツール、包装などを構築するソースコードから現像剤容器を組み立てるためのツールを含みます。彼らは自由に使用できますメイク、達人、シェフ、人形、塩、Debianのパッケージ、RPMの、ソースのtarball、または関係なく、マシンの構成の上記の任意の組み合わせ、。
バージョン遡及。ドッカーは、連続したバージョンを追跡するための容器を含む、検査の間の差のバージョンでは、同様のGitは、新しいバージョンのロールバック機能を提出しました。歴史はまた、コンテナとでの組み立て方法を含んでいるので、あなたが戻って本番サーバから上流の開発者へのすべての方法をすることができます。コンテナの新しいバージョンが唯一の違いを送信することにより送信することができるので、ドッカーも、「gitのプル」に似たインクリメンタルアップロードとダウンロードを達成します。
コンポーネントの再利用。任意の容器は、より専門的なコンポーネントを作成するために、「ベースイメージ」として使用することができます。これは、自動または手動ビルドの一部として行うことができます。たとえば、あなたは理想的な環境のpythonを準備することができ、そして10種類のアプリケーションの基盤として使用します。あなたの理想的な設定はすべて、あなたの将来のプロジェクトのために再利用することができますPostgreSQLの。
共有。公共のレジストリ(http://index.docker.io)へのドッキングウィンドウへのアクセス、何千人ものユーザーが便利なコンテナをアップロード:のRedis、CouchDBの、Postgresのより安全なIRCするためのさまざまなを発行するために、アプリケーション・サーバーをレールにベースイメージのバージョンを作成します。登録はまた、桟橋上のワーキンググループによって維持公式「標準ライブラリ」便利な容器を含みます。レジストリ自体はオープンソースなので、誰もがこのような内部サーバーの展開のためなどの容器を、保管、輸送するために自分のプライベートレジストリを展開することができます。
ツール・エコシステム。ドッキングウィンドウは、自動化とカスタムコンテナを作成および展開するためのAPIを定義します。その機能を拡張するための統合ツールとドッキングウィンドウの大多数あります。(Dokku、DEIS、フリン)、マルチノード構成(マエストロ、塩、mesos、OpenStackのノヴァ)、 ダッシュボード(ドッカー-UI、OpenStackのHorizo N 、 造船所)、構成管理(クック、人形)、継続的インテグレーションように(ジェンキンス、ストライダー、トラビス)と。ドッカーはすぐに標準コンテナベースのツールとしての地位を位置づけています。
2。共通コマンド
2.1共通の操作コマンド
LXCは、二つの異なるコンテナを作成することができます。
- ・特権モード - 権限のコンテナを作成し、rootとして様々なコマンドを実行しますLXC。
- •通常モード - 非特権コンテナを作成し、通常のユーザーとして様々なコマンドを実行しますLXC
普通のコンテナが(ホストを危うくしない)(そのようなデバイスノードを作成しないように)多くの制約だけでなく、より安全なを持って、このような容器のrootユーザので、実際には、ホスト上の一般的なユーザーにマップされます。
LXC-checkconfig 1:コンテナ検査システムは、環境要件を満たしています。
作成-LXC 2:LXCコンテナを作成します。
TEMPLATE_NAME -t -n NAMEをLXC-作成
開始-LXC 3.:コンテナを開始します。
LXC-開始-n fooの[設定-f] / binに/ bashの
NAME -n LXC-スタート-d
デーモンコンテナを開始する-d方法。コマンドが指定されていない場合は、実行/ sbinに/ initのをLXC-開始。
動作を停止すると、LXC-破壊する破壊の使用を必要とした後、コンテナLXC-作成作成しました。
実行-LXC 4:実行
LXC-実行-n fooの[設定-f] / binに/ bashの
LXC-INITコマンドは、コンテナ内で実行される中間処理によりLXC実行。
コンテナが存在しない場合は、LXC-実行停止が自動的に破棄された後、自動的に、1を作成します。
次のような構成のアプリケーション、優先順位を起動するLXC-実行します。
-fオプションを実行する場合は、使用されません前に、コンテナプロファイルを作成します。-sオプションを指定すると、コマンドラインでのキーと値のペアの構成は同じ構成の(指定の前かどうか-f)の設定ファイルを上書きします。
STOP-LXC 5.:コンテナを停止し、(遅い停止指令)
-n NAMEをLXC-停止-d
LXC-Destoryは6:停止状態でコンテナを削除します。
-n NAMEをLXC-破壊
LXC-情報7:コンテナに関連する情報を表示します。
NAME -n LXC-情報
LS-LXC 8:リストコンテナ
詳細を一覧表示します--fancy LXC-LS
9.-LXCを監視:監視コンテナ
LXC-モニター-n "FOO |バー"
LXC-モニター-n "*。";すべての船舶を監視します
容器の状態の変化は、容器のLXCモニタ状態はスクリーン上に印刷される場合。
待機LXC 10.:状態出口を聞いた後、特定のコンテナ
LXC-待つ-nのfoo -sが停止&
LXC-のcgroup 11:のcgroup(対照群のサブシステム)に関連するパラメータを取得または設定
LXC-のcgroup -n fooのcpuset.cpus
LXC-のcgroup -n fooのcpu.shares 512
LXC-スナップショット11:作成し、スナップショットを復元します。
容器に2.2
LXC-取り付け、LXC-コンソール、およびSSH:3つのコンテナを入力する方法があります。
1. LXC-取り付け
-n名前をLXC-取り付け
LXC-取り付け-n名前を - コマンド
昇格した権限、およびホスト上のソフトウェアをテストする際に便利な、名前空間を指定します。
LXC-取り付け-n ubuntu1 -e -s 'NETWORK |のutsname'
2. LXCパネル
LXC-コンソール名のログイン・コンテナ-nは、ユーザー名とパスワードが必要です
3. SSH
SSHのユーザ名@IP
コンテナの2.3クローニング
「クローン」のいずれかである他のコンテナのコピー、または他の容器には、スナップショットです。
コピー:元の容器の完全なコピー、元の容器が占めるスペースと同じ大きさ
スナップショット:スナップショット機能バックファイルシステムを使用して、小さな、複製が発生し、新しいコンテナを作成するときに、書き込み動作
などのaufs、のbtrfs、LVM、overlayfs、ZFS、それぞれが独自のストレージ特性があります。このスナップショットのコピー・オン・ライト特性を持っているために、それがストレージのスナップショットをサポートしている特殊なストレージシステムがあるが必要です。
LXC-クローンを作成し、スナップショットをコピーするために使用されるコンテナを停止する必要性を作成する前に:
sudoの-n名前をLXC-停止
名前-N clone_Name -n sudoのLXC-コピー、コピー
sudoのLXC-コピー名前-N snapshot_Name -n -s;快照
須藤LXC-スナップショット-N名前{-r snapshot_Name -N nawName、スナップショットを作成したり、リストア
/ var / libに/ LXC /コンテナのディレクトリ名の下にあるスナップショットの作成、スナップショットの名前はsnap0、プランsnap1です...
3.インストール
1。LXCとテンプレートパッケージをインストールするには、LXCが付属しています
sudoのアドオンはapt - リポジトリPPA:Ubuntuの-LXC / LXC-安定
須藤はapt-getを更新
LXC LXC-テンプレートをインストール須藤はapt
2。橋を追加します
血管ネットワークを処理しないLXC、ネットワークを構成する必要がある(Ubuntuの中やすいインストールを介して、ブリッジが設定されています)。
須藤はaptインストールブリッジ-utilsの-y
brctl addbr virbr0#ブリッジを追加します
brctlはaddif virbr0 ens33;#は、このカードに関連付けられている橋をens33 \
IP addrはデルDEV ens33 192.168.253.128/24;#IPがカード上で削除\
ifconfigコマンドは、IPを設定するには、#ブリッジまで192.168.253.128/24をvirbr0 \
ルートの追加デフォルトGW 192.168.253.2#デフォルトゲートウェイを設定します
4. LXCテンプレート
いわゆるテンプレートは、LXC独自のテンプレートを使用している場合、その後、プロトタイプは、あなたがvimの、GCCを使用したい場合は、MySQLの自分自身を生成する必要がある、唯一の最も基本的な構成を提供し、プロトタイプは同様のLXC仮想マシンのシリーズをベースに作成することができるプロトタイプです。ここで作成するためのテンプレートの概念、この基礎の唯一の最も基本的なアプリケーションを、保持、最小システム組み込みシステムに多少似て、最も基本的なだけの簡単な製造には、適切なアプリケーションを追加します。
テンプレートは、コンテナのスクリプトを作成することで、コンテナはソース(またはコンポーネント)アドレス、及びダウンロード及び容器を製造するステップ法による工程の多様を含み、本質的にシェルスクリプトです。
Ubuntuのコンテナを作成した後、コンテナファイルシステムのディレクトリを次のように
30分以上のものを生成する(長いダウンロード時間の主な情報源)、UbuntuのLXCコンテナのログを作成します。
参考:
1。https://linuxcontainers.org/公式サイト