あるクラスメートが私に次のような例え話をしてくれました。ホスト マシンは大きな家のようなもので、Docker はそれを N 個の小さなパーティションに分割します。これらの小さな仕切りの間には、独立したトイレ、小さなベッド、テレビなどがあります。
画像はBaotu.comより スズメは小さいですが、すべての器官を持っています。この比喩は非常に適切です。 Linux は非常に包括的な分離メカニズムを提供するため、各小さなコンパートメントは互いに影響を及ぼしません。隣の部屋が春に満ちていても、私の部屋は相変わらず閑散としていて、何の影響もありません。 Docker は、chroot、namespace、cgroup という 3 つの古いテクノロジーを利用することでこれらの機能を実現できます。 この記事では、まず名前空間について説明します。結局のところ、分離はコンテナの最初の要素です。 Linux カーネルは最大 8 種類の名前空間を提供します。これらの独立した名前空間では、リソースは互いに影響を及ぼさず、分離対策は非常に優れています。 8種類まず、Linux がサポートする名前空間を見てみましょう。これらの詳細は、unshare コマンドを通じて確認できます。 ターミナルで man unshare を実行すると、これらの名前空間の紹介が表示されます。
さらに、Linux ではバージョン 4.6 と 5.6 でそれぞれ cgroup と Time 分離タイプが追加され、合計 8 種類になりました。 コントロール グループ (cgroup) 名前空間は Cgroup ルート ディレクトリを分離します (バージョン 4.6 で追加)。 Time 名前空間はシステム時間を分離します (バージョン 5.6 で追加)。 1 例unshare コマンドを使用すると、いくつかの分離例をすばやく作成できます。最も単純で直感的な pid 名前空間を使用して、その効果を確認してみましょう。 ご存知のとおり、Linux プロセス番号 1 は systemd プロセスと呼ばれます。しかし、Docker では、ps コマンドを実行しても、プロセスのごく一部しか表示できません。 次のコマンドを実行して隔離環境に入り、bash をルート プロセスとして使用します。
効果は図に示されています: ご覧のとおり、bash はプロセス番号 1 になり、ホスト マシンやその他の分離された環境のプロセス情報はここには表示されません。 まず、隔離された環境で sleep 1000 を実行します。別のターミナルを開き、ホスト マシン上で pstree を実行すると、この分離された環境の進行状況情報が表示されます。 次に、ホストマシン上で、sleep に対応するプロセスの名前空間情報とホストマシンの名前空間情報を比較します。 ご覧のとおり、pid 名前空間にはそれぞれ異なる対応する値があります。 以下は、他の名前空間で試すことができる実験的なコマンドです。 実験
マウント名前空間を作成し、それぞれの環境で異なるマウント ディレクトリを使用します。
uts を使用するとホスト名を分離でき、各名前空間に独立したホスト名を持たせることができます。ホスト名は hostname コマンドで変更できます。
IPC 名前空間は主にプロセス間通信を分離するために使用されます。 Linux のプロセス間通信には、パイプ、シグナル、メッセージ、共有メモリ、セマフォ、ソケットなどの方法が含まれます。 IPC 名前空間を使用すると、これらすべての名前空間間の通信方法が無効になります。しかし、これこそがまさに私たちが望んでいることです。
ユーザー名前空間は非常に理解しやすいです。ある名前空間または別の名前空間に xjjdog アカウントを作成できますが、それらは互いに影響しません。
net 名前空間、これは非常に便利です。ネットワーク デバイス、IP アドレス、ポートなどの情報を分離するために使用できます。 結論ご覧のとおり、Linux はさまざまな名前空間を通じてさまざまなリソースを細かく分離できます。 Docker 自体も、新しいボトルに古いワインが入ったおもちゃです。 Docker の革新的な点は、中央リポジトリを追加し、多くの使いやすいコマンドをカプセル化していることです。 これまでのところ、CPU とメモリのリソース使用量を分離しておらず、これらの問題を解決するための対応する名前空間も作成していないことに気付くかもしれません。 リソース制限機能は、Cgroups を使用してクォータを構成することによって実現され、名前空間とは関係ありません。次の記事ではCgroupsテクノロジーについて紹介します。 最後に、Docker のライフサイクル図を示します。 Docker の開発により、アプリケーション ツール チェーンは非常に成熟し、多くの学生がすでにそれに精通しています。コンテナ技術に非常に興味がある場合は、基礎となる原理についても調べてみるといいでしょう。このように、Google は独自のコンテナを推進する場合でも、Docker を使い続ける場合でも、すぐに習得できます。 著者: リトルシスターテイスト 編集者:タオ・ジアロン 出典:公開アカウントSister Taste(ID:xjjdog)より転載 |
<<: ハイブリッドな未来の働き方、ニューノーマルにおける競争力
外部リンクの役割は SEO の 70%~80% を占めます。一般的に、ウェブサイトがトラフィックを獲...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています多くのロゴ...
検索方法を理解し、オンラインマーケティングの効果を高める魚を与えるよりも魚の釣り方を教える方が良い。...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています現実の生活...
EcoVM は KVM タイプの VPS のプロモーションを開始し、SSD ハード ドライブと通常の...
いよいよ毎年恒例の独身の日がやってきます。カップルや独身者がお祝いに忙しくなるこの日は、いわゆる「お...
ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービスウェブサイトの SEO ...
パソコンやインターネットに続き、クラウドコンピューティングが IT 業界に新たな改革の波を起こしまし...
最近、国内オープンインフラのリーダーである九州クラウドと上海盈方ソフトウェア株式会社(以下、「盈方ソ...
この段階では、ウェブサイトの最適化はユーザー開発とコンテンツ開発に関するものです。コンテンツ開発には...
2017 年 11 月 1 日、北京 - 2017 Microsoft Tech Summit が北...
百度は自社製品に愛着を持ちすぎていて、特別扱いをしているとよく思われるが、この発言には実は強い嫉妬の...
conoha.jpのVPSを強くお勧めします! conoha.jp は、日本の gmo.jp (19...
対外貿易B2Cモールには、プラットフォーム型モールと自社構築型モールの2種類があります。プラットフォ...
スナック菓子は昔から親しまれてきました。最近は、味も濃厚でパッケージも美しく、一流の支持を得ているス...