Docker では、プロセス分離とは、各コンテナーを独自のプロセス環境で実行することを意味します。Docker は主に、分離を実現するために Linux カーネル テクノロジの名前空間を使用します。「Linux 名前空間」メカニズムは、リソース分離スキームを提供します。
このチュートリアルの動作環境: linux7.3 システム、docker バージョン 19.03、Dell G3 コンピューター。
プロセス分離: 各コンテナーは独自のプロセス環境で実行されます
分離原則
Docker は主に Linux カーネル テクノロジの名前空間に依存して分離を実現しており、Linux 名前空間メカニズムはリソース分離ソリューションを提供します。 PID、IPC、ネットワークなどのシステム リソースはグローバルではなくなり、特定の名前空間に属します。
各名前空間の下のリソースは透過的であり、他の名前空間の下のリソースには見えません。したがって、オペレーティング システム レベルでは、同じ pid を持つ複数のプロセスが存在します。システム内にプロセス番号 0、1、2 の 2 つのプロセスが同時に存在できますが、これらは異なる名前空間に属しているため、プロセス間で競合は発生しません。ユーザー レベルでは、ユーザー自身の名前空間に属するリソースのみが表示されます。たとえば、 ps コマンドを使用すると、ユーザー自身の名前空間にあるプロセスのみを一覧表示できます。このようにして、各名前空間は個別の Linux システムのように見えます。
コンテナの開始
docker run -it -p 8080:8080 --name pai-sn pai-sn:snapshot /bin/bash
-it 対話型起動、-p ポートマッピング、-name コンテナ名が続きます。イメージ名で指定し、シェルを開いて、起動後にコンテナーに入ります。
プロセスを表示します。
ps -ef
#top コマンドを使用して、プロセス リソースを表示します。
ホスト マシン上で現在実行中のコンテナのプロセスを確認します。 ps -ef|grep pai-sn
これにより、docker が実行されていることがわかります。このコマンドは 1 つのプロセスのみを開始し、その pid は 4677 です。コンテナプログラム自体は分離されており、コンテナ内では自身の内部プロセスのみが見えます。 Docker は、Linux カーネルの名前空間テクノロジーを利用して実装されています。
docker ビデオ チュートリアル 」
以上がdocker プロセスの分離とは何を意味しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。