ホームページ >運用・保守 >Docker >Docker コンテナの分離は何によって行われますか?

Docker コンテナの分離は何によって行われますか?

WBOY
WBOYオリジナル
2022-08-15 16:42:064703ブラウズ

Docker コンテナは、Linux カーネル テクノロジの名前空間を通じて分離を実現します。「Linux 名前空間」メカニズムは、リソース分離ソリューションを提供します。各名前空間の下のリソースは透過的で、他の名前空間の下のリソースからは見えません。システム レベルでは、同じ pid を持つ複数のプロセスが存在します。

Docker コンテナの分離は何によって行われますか?

このチュートリアルの動作環境: linux7.3 システム、docker バージョン 19.03、Dell G3 コンピューター。

Docker コンテナの分離とは何ですか?

Docker は主に、分離を実現するために Linux カーネル テクノロジの名前空間に依存しています。Linux 名前空間メカニズムは、リソース分離ソリューションを提供します。

PID、IPC、ネットワーク、およびその他のシステム リソースはグローバルではなくなり、特定の名前空間に属します。各名前空間の下のリソースは透過的であり、他の名前空間の下のリソースには見えません。したがって、オペレーティング システム レベルでは、同じ pid を持つ複数のプロセスが存在します。システム内にプロセス番号 0、1、2 の 2 つのプロセスが同時に存在できますが、これらは異なる名前空間に属しているため、プロセス間で競合は発生しません。ユーザー レベルでは、ユーザー自身の名前空間に属するリソースのみが表示されます。たとえば、 ps コマンドを使用すると、ユーザー自身の名前空間にあるプロセスのみを一覧表示できます。このようにして、各名前空間は個別の Linux システムのように見えます。

Docker コンテナの分離は何によって行われますか?

#例は次のとおりです: プロセスの分離

コンテナの開始

docker run -it -p 8080:8080 --name pai-sn pai-sn:snapshot /bin/bash

-it 対話型起動、-p ポート マッピング、-name コンテナ名の後にイメージ名が続き、シェルを開いて、起動後にコンテナに入ります

プロセスの表示

ps -ef

Docker コンテナの分離は何によって行われますか?

プロセス リソースを表示するには、top コマンドを使用します。

Docker コンテナの分離は何によって行われますか?

ホスト マシン上でコンテナを現在実行しているプロセスを表示します。 ps -ef|grep pai-sn

Docker コンテナの分離は何によって行われますか?

このことから、docker run コマンドは 1 つのプロセスのみを開始し、その pid は 4677 であることがわかります。コンテナプログラム自体は分離されており、コンテナ内では自身の内部プロセスのみが見えます。 Docker は、Linux カーネルの名前空間テクノロジーを利用して実装されています。

#ファイルの分離コンテナ内のルート ディレクトリで ls コマンドを実行します

Docker コンテナの分離は何によって行われますか?コンテナ内 これらのフォルダーが含まれています

ホストは docker info を実行して、Docker が使用するファイル システムを確認します

Docker コンテナの分離は何によって行われますか?Docker のバージョンは 20.10 です。 6. ストレージ ドライバーは overlay2 です。ストレージ ドライバーが異なれば Docker 内での動作も異なりますが、原理は似ています。

Docker ファイル システムは、mount によってマウントされます。 docker ps コマンド インスタンス id を実行します。

Docker コンテナの分離は何によって行われますか?docker Inspection container_id | grep Mounts -A 20 を実行して、マウントします。ホスト マシン上のディレクトリで、ディレクトリ リスト

Docker コンテナの分離は何によって行われますか? を確認し、これがコンテナのディレクトリと一致していることを確認します。このディレクトリに新しいディレクトリを作成して、コンテナ内に新しいディレクトリが表示されるかどうかを確認します。実際、ファイルの分離とリソースの分離はすべて、新しい名前空間にマウントすることによって行われます。

推奨される学習: 「

docker ビデオ チュートリアル

以上がDocker コンテナの分離は何によって行われますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。