5分でDockerの基本原理を学ぶ

5分でDockerの基本原理を学ぶ

あるクラスメートが私に次のような例え話をしてくれました。ホスト マシンは大きな家のようなもので、Docker はそれを N 個の小さなパーティションに分割します。これらの小さな仕切りの間には、独立したトイレ、小さなベッド、テレビなどがあります。

[[437703]]

画像はBaotu.comより

スズメは小さいですが、すべての器官を持っています。この比喩は非常に適切です。 Linux は非常に包括的な分離メカニズムを提供するため、各小さなコンパートメントは互いに影響を及ぼしません。隣の部屋が春に満ちていても、私の部屋は相変わらず閑散としていて、何の影響もありません。

Docker は、chroot、namespace、cgroup という 3 つの古いテクノロジーを利用することでこれらの機能を実現できます。

この記事では、まず名前空間について説明します。結局のところ、分離はコンテナの最初の要素です。

Linux カーネルは最大 8 種類の名前空間を提供します。これらの独立した名前空間では、リソースは互いに影響を及ぼさず、分離対策は非常に優れています。

8種類

まず、Linux がサポートする名前空間を見てみましょう。これらの詳細は、unshare コマンドを通じて確認できます。

ターミナルで man unshare を実行すると、これらの名前空間の紹介が表示されます。

  • マウント(mnt): マウントポイントを分離する
  • プロセスID (pid): 分離プロセスID
  • ネットワーク (net): ネットワーク デバイス、ポート番号などを分離します。
  • プロセス間通信 (ipc): System V IPC と POSIX メッセージ キューの分離
  • UTS名前空間(uts):ホスト名とドメイン名を分離する
  • ユーザー名前空間(ユーザー):ユーザーとユーザーグループを分離する

さらに、Linux ではバージョン 4.6 と 5.6 でそれぞれ cgroup と Time 分離タイプが追加され、合計 8 種類になりました。

コントロール グループ (cgroup) 名前空間は Cgroup ルート ディレクトリを分離します (バージョン 4.6 で追加)。 Time 名前空間はシステム時間を分離します (バージョン 5.6 で追加)。

1 例

unshare コマンドを使用すると、いくつかの分離例をすばやく作成できます。最も単純で直感的な pid 名前空間を使用して、その効果を確認してみましょう。

ご存知のとおり、Linux プロセス番号 1 は systemd プロセスと呼ばれます。しかし、Docker では、ps コマンドを実行しても、プロセスのごく一部しか表示できません。

次のコマンドを実行して隔離環境に入り、bash をルート プロセスとして使用します。

  1. 共有解除--pid --fork --mount-proc /bin/bash  

効果は図に示されています:

ご覧のとおり、bash はプロセス番号 1 になり、ホスト マシンやその他の分離された環境のプロセス情報はここには表示されません。

まず、隔離された環境で sleep 1000 を実行します。別のターミナルを開き、ホスト マシン上で pstree を実行すると、この分離された環境の進行状況情報が表示されます。

次に、ホストマシン上で、sleep に対応するプロセスの名前空間情報とホストマシンの名前空間情報を比較します。

ご覧のとおり、pid 名前空間にはそれぞれ異なる対応する値があります。

以下は、他の名前空間で試すことができる実験的なコマンドです。

実験

  1. 共有を解除--mount --fork /bin/bash  

マウント名前空間を作成し、それぞれの環境で異なるマウント ディレクトリを使用します。

  1. 共有を解除--uts --fork /bin/bash  

uts を使用するとホスト名を分離でき、各名前空間に独立したホスト名を持たせることができます。ホスト名は hostname コマンドで変更できます。

  1. 共有解除--ipc --fork /bin/bash  

IPC 名前空間は主にプロセス間通信を分離するために使用されます。 Linux のプロセス間通信には、パイプ、シグナル、メッセージ、共有メモリ、セマフォ、ソケットなどの方法が含まれます。

IPC 名前空間を使用すると、これらすべての名前空間間の通信方法が無効になります。しかし、これこそがまさに私たちが望んでいることです。

  1. 共有を解除--user -r /bin/bash  

ユーザー名前空間は非常に理解しやすいです。ある名前空間または別の名前空間に xjjdog アカウントを作成できますが、それらは互いに影響しません。

  1. 共有を解除--net --fork /bin/bash  

net 名前空間、これは非常に便利です。ネットワーク デバイス、IP アドレス、ポートなどの情報を分離するために使用できます。

結論

ご覧のとおり、Linux はさまざまな名前空間を通じてさまざまなリソースを細かく分離できます。

Docker 自体も、新しいボトルに古いワインが入ったおもちゃです。 Docker の革新的な点は、中央リポジトリを追加し、多くの使いやすいコマンドをカプセル化していることです。

これまでのところ、CPU とメモリのリソース使用量を分離しておらず、これらの問題を解決するための対応する名前空間も作成していないことに気付くかもしれません。

リソース制限機能は、Cgroups を使用してクォータを構成することによって実現され、名前空間とは関係ありません。次の記事ではCgroupsテクノロジーについて紹介します。

最後に、Docker のライフサイクル図を示します。

Docker の開発により、アプリケーション ツール チェーンは非常に成熟し、多くの学生がすでにそれに精通しています。コンテナ技術に非常に興味がある場合は、基礎となる原理についても調べてみるといいでしょう。このように、Google は独自のコンテナを推進する場合でも、Docker を使い続ける場合でも、すぐに習得できます。

著者: リトルシスターテイスト

編集者:タオ・ジアロン

出典:公開アカウントSister Taste(ID:xjjdog)より転載

<<:  ハイブリッドな未来の働き方、ニューノーマルにおける競争力

>>:  Linux 割り込み仮想化 2

推薦する

WeChat パブリックアカウント 10 週以上のデータレポート

10w+ とはどういう意味ですか?新しいメディア環境が成熟するにつれ、ヒット商品を生み出す手法も確立...

Baidu ダブル 11 ブランド マーケティング戦略

百度は、ダブルイレブンマーケティングキャンペーンに合わせて、プロモーション期間中のトラフィックを活用...

クリエイティブ製品の期間限定販売サイトFab.comが欧州市場で巨額の利益を上げる

クリエイティブな製品のフラッシュセールサイトであるFab.comは、ヨーロッパでの1周年を記念して、...

MetO ウェブサイト テンプレートのレビュー: ハイエンド、高速、オープンソース

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますテンプレー...

UCloud Elasticsearch Service UES アプリケーションシナリオ分析

システム内のビジネス データの量が数百億に達すると、通常、次のような問題が発生します。 1. データ...

SEO担当者は常に、1つのテーマを持つウェブサイトの方がランキングとユーザーの信頼を獲得する可能性が高いことを覚えておく必要があります。

最近、著者はウェブサイトを構築し、2か月も経たないうちに、Baiduのホームページに「ダイエット薬ラ...

Weiboマーケティングをビジネスに活用する方法

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービス1. 企業がWeiboマ...

200以上のブランド事例を研究した後、50の製品とマーケティングの考えをまとめました

ブランド、新しい消費、マーケティングに関して、私は以前に考えたことのいくつかを記録し、それを 50 ...

インタラクションデザイン: 入力マスクを使用してテキストボックスのインタラクション品質を向上させる

[編集者注]: この記事は @C7210 によって翻訳されました。モバイル アプリケーションの設計者...

中国最高人民法院、情報ネットワークの伝達権に関する司法解釈を発表

人民日報、北京12月26日(記者:李静)最高人民法院は本日、「情報ネットワーク通信権の侵害に関わる民...

ウェブサイト運営ディレクターに必要な4つのスキル

Baidu百科事典によると、ウェブサイト運営責任者は、企業の事業戦略の指導の下で市場調査とフィードバ...

風と波に乗って百度ランキングを目指そう

気がつけば、私は SEO 最適化業界を 4 年間探求し、研究してきました。これから、この 4 年間の...

ホット検索はWeiboの弱点となるか?

最近、ソーシャルイベントが次々と流行しています。Weiboのゼロ閾値により、誰もがこれらのイベントの...

ホスティング - 年間 50 ドル / KVM / メモリ 1g / ハードディスク 25g / トラフィック 1T

Hostigation は、2010 年と 2011 年に非常に人気があった VPS 業者ですが、過...

テンセントの「デジタルエコシステム展」が本日春城に上陸し、業界と消費者のインターネットの「ブラックテクノロジー」をすべて展示した。

2019年テンセントグローバルデジタルエコシステムカンファレンスの重要な一環として、「デジタルエコシ...