ホームページ  >  記事  >  運用・保守  >  Docker の runc とは何ですか

Docker の runc とは何ですか

青灯夜游
青灯夜游オリジナル
2021-12-30 15:45:576549ブラウズ

Docker では、RunC は、OCI 標準に従ってコンテナを作成および実行する CLI ツールであり、コンテナを実行するための OCI 標準に準拠したコマンド ライン ツールです。 runC は docker の中核部分であり、コンテナの作成、実行、破棄などの操作は最終的に 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 コマンドに直接変更しました。

Docker の runc とは何ですか

#RunC はコンテナーの最下位の実行環境であり、その上位層は Docker を通じて管理されます。

runC は docker の中核部分であり、コンテナの作成、実行、破棄などの操作は最終的に runc を呼び出すことで完了します。

独立した操作

RunC はコンテナの実行状態であり、イメージ管理は含まれません。直接使用する場合は、最初にイメージを準備する必要があります。ここでは、すでに構築されている BusyBox テンプレート。

OCI バンドル

OCI バンドルとは、OCI 標準を満たす一連のファイルを指します。これらのファイルには、コンテナの実行に必要なすべてのデータが含まれていますこれらは、次の 2 つの項目を含む共通ディレクトリに保存されます:

  • config.json 実行中のコンテナの構成データが含まれます。コンテナのルート ファイルシステム。
  • Docker がホストにインストールされている場合は、
docker export

コマンドを使用して、既存のイメージを 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 が報告されます。 さらに、ターミナルが閉じているため、コマンドは

"args": [ "sleep", "10000" ],

パラメーターに変更されます。

Start

----- 创建容器并查看状态
# runc create mybusybox
# runc list

----- 启动容器,并查看状态
# runc start mybusybox

----- 删除容器
# runc delete mybusybox

開始後は、
ps aux | grep sleep

を参照してください。特定のコマンド。 一般的なコマンド

----- 查看容器状态
# runc state mybusybox

----- 容器内运行进程
# runc ps mybusybox

----- 在容器中执行命令
# runc exec mybusybox ls

----- 停止容器内的任务
# runc kill mybusybox

----- 暂停容器内的所有进程
# runc pause mybusybox

----- 恢复容器内进程的执行
# runc resume mybusybox

----- 获取容器的资源使用情况
# runc events mybusybox

ホット マイグレーション

は、コンテナ上で CheckPoint 操作を実行し、一連のファイルを取得し、それを開始します。他のマシンも。

推奨される学習: 「

docker ビデオ チュートリアル

以上がDocker の runc とは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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