Docker では、RunC は、OCI 標準に従ってコンテナを作成および実行する CLI ツールであり、コンテナを実行するための OCI 標準に準拠したコマンド ライン ツールです。 runC は docker の中核部分であり、コンテナの作成、実行、破棄などの操作は最終的に runc を呼び出すことで完了します。
このチュートリアルの動作環境: linux5.9.8 システム、docker-1.13.1 バージョン、Dell G3 コンピューター。
OCI はコンテナ ランタイム標準を定義し、runC はオープン コンテナ フォーマット標準である Open Container Format (OCF) に従って Docker によって策定された特定の実装です。
このプロジェクトは Docker の libcontainer から移行され、コンテナの起動と停止、リソースの分離などの機能を実装しています。したがって、コンテナはこのツールを通じて直接実行できます。
いわゆるコンテナ ランタイム (コンテナ ランタイム) には、コンテナ管理とコンテナ イメージングが含まれます。Open Container Initiative (OCI) は、次のようなコンテナ ランタイムの業界標準です。
A) ランタイム標準 runtime-spec;
B) コンテナ イメージ標準 image-spec。
簡単に言えば、コンテナ イメージ標準はコンテナ イメージのパッケージ化形式を定義し、ランタイム標準はコンテナの実行方法を定義します。
RunC は、OCI 標準に従ってコンテナを作成および実行する CLI ツールです。OCI 標準に従ってコンテナを実行するためのコマンドライン ツールです。ランタイム実装でもあります。
Docker
古いバージョンでは docker-runc
を呼び出す必要がありますが、最新の CE バージョンでは, runc
コマンドに直接変更しました。
#RunC はコンテナーの最下位の実行環境であり、その上位層は Docker を通じて管理されます。
runC は docker の中核部分であり、コンテナの作成、実行、破棄などの操作は最終的に runc を呼び出すことで完了します。
RunC はコンテナの実行状態であり、イメージ管理は含まれません。直接使用する場合は、最初にイメージを準備する必要があります。ここでは、すでに構築されている BusyBox テンプレート。
OCI バンドル
OCI バンドルとは、OCI 標準を満たす一連のファイルを指します。これらのファイルには、コンテナの実行に必要なすべてのデータが含まれていますこれらは、次の 2 つの項目を含む共通ディレクトリに保存されます:
config.json
実行中のコンテナの構成データが含まれます。コンテナのルート ファイルシステム。 コマンドを使用して、既存のイメージを OCI バンドル形式にエクスポートできます。
rootfs の生成Docker で BusyBox テンプレートを直接使用します。
----- 下载最新的版本 $ docker pull busybox ----- 创建rootfs $ mkdir rootfs $ docker export $(docker create busybox) | tar -C rootfs -xvf -
設定ファイル
rootfs ディレクトリには、共通のバイナリ ファイルが含まれています。ルート ディレクトリに加えて、config.json
構成ファイルも必要です。構成テンプレートは、runc spec
コマンドを通じて生成できます。 詳細な構成については、https://github.com/opencontainers/runtime-spec/blob/master/spec.md
構成内の
「ターミナル」を変更してください。 file: true は false
に変更されます。それ以外の場合は、作成時に cannot assign tty if runc will detach without set console submits
が報告されます。 さらに、ターミナルが閉じているため、コマンドは
パラメーターに変更されます。
Start
----- 创建容器并查看状态 # runc create mybusybox # runc list ----- 启动容器,并查看状态 # runc start mybusybox ----- 删除容器 # runc delete mybusybox
を参照してください。特定のコマンド。 一般的なコマンド
----- 查看容器状态 # runc state mybusybox ----- 容器内运行进程 # runc ps mybusybox ----- 在容器中执行命令 # runc exec mybusybox ls ----- 停止容器内的任务 # runc kill mybusybox ----- 暂停容器内的所有进程 # runc pause mybusybox ----- 恢复容器内进程的执行 # runc resume mybusybox ----- 获取容器的资源使用情况 # runc events mybusybox
推奨される学習: 「
docker ビデオ チュートリアル以上がDocker の runc とは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。