Inhaltsverzeichnis
Einführung
独立运行
Unabhängig ausführen" >

Unabhängig ausführen

Heim Betrieb und Instandhaltung Docker Was ist Runc in Docker?

Was ist Runc in Docker?

Dec 30, 2021 pm 03:45 PM
docker

In Docker ist RunC ein CLI-Tool zum Erstellen und Ausführen von Containern gemäß OCI-Standards, ein Befehlszeilentool zum Ausführen von Containern, das den OCI-Standards folgt. runC ist der Kernbestandteil von Docker. Die Erstellung, Ausführung, Zerstörung und andere Vorgänge des Containers werden schließlich durch den Aufruf von runc abgeschlossen.

Was ist Runc in Docker?

Die Betriebsumgebung dieses Tutorials: Linux5.9.8-System, Docker-1.13.1-Version, Dell G3-Computer.

OCI definiert den Container-Laufzeitstandard und runC ist eine spezifische Implementierung, die von Docker gemäß dem offenen Containerformatstandard Open Container Format, OCF, entwickelt wurde.

Dieses Projekt wird aus Dockers libcontainer migriert und implementiert Funktionen wie Container-Start und -Stopp, Ressourcenisolation usw. Daher kann der Container direkt über dieses Tool ausgeführt werden.

Einführung

Die sogenannte Container-Laufzeit (Container Runtime) umfasst Container-Management und Container-Image. OCI ist der Industriestandard für Container-Laufzeit, einschließlich:

A) Laufzeitstandard runtime-spec;

B) Container-Image-Standard image-spec.

Einfach ausgedrückt definiert der Container-Image-Standard die Verpackungsform des Container-Images und der Laufzeitstandard definiert, wie ein Container ausgeführt wird.

RunC ist ein CLI-Tool, das Container gemäß OCI-Standards erstellt und ausführt. Es ist ein Befehlszeilentool zum Ausführen von Containern, das OCI-Standards folgt.

Docker

In der alten Version müssen Sie docker-runc aufrufen, aber in der neuesten CE-Version wird es direkt geändert zum Befehl runc. docker-runc ,而最新的 CE 版本里,直接修改为了 runc 命令。

Was ist Runc in Docker?

RunC 作为容器的最底层运行环境,其上层通过 Docker 进行管理。

runC就是docker中最为核心的部分,容器的创建,运行,销毁等等操作最终都将通过调用runc完成。

独立运行

RunC 作为容器的运行态,不包含镜像的管理,如果直接使用,需要先准备好镜像,这里直接使用已经构建好的 BusyBox 模板。

OCI Bundle

OCI Bundle 是指满足 OCI 标准的一系列文件,这些文件包含了运行容器所需要的所有数据,它们存放在一个共同的目录,该目录包含以下两项:

  • config.json 包含容器运行的配置数据;
  • 容器的 root filesystem 。

如果主机上安装了 Docker,那么可以使用 docker export 命令将已有镜像导出为 OCI Bundle 的格式。

生成 rootfs

直接使用 Docker 中的 BusyBox 模板。

----- 下载最新的版本
$ docker pull busybox

----- 创建rootfs
$ mkdir rootfs
$ docker export $(docker create busybox) | tar -C rootfs -xvf -
Nach dem Login kopieren

配置文件

rootfs 目录下,包含了常见的二进制文件,除了根目录之外,还需要一个 config.json 配置文件,可以通过 runc spec 命令生成配置模板。

详细的配置可以参考 https://github.com/opencontainers/runtime-spec/blob/master/spec.md

将配置文件中的 "terminal": true 修改为 false ,否则会在创建的时候会宝 cannot allocate tty if runc will detach without setting console socket 报错。

另外,因为关闭了终端,所以将命令修改为 "args": [ "sleep", "10000" ], 参数。

启动

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

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

----- 删除容器
# runc delete mybusybox
Nach dem Login kopieren

在启动了之后,可以通过 ps aux | grep sleep

Was ist Runc in Docker?

RunC Da es sich um die unterste Betriebsumgebung des Containers handelt, wird seine obere Schicht über Docker verwaltet.
runC ist der Kernbestandteil von Docker. Die Erstellung, Ausführung, Zerstörung und andere Vorgänge des Containers werden schließlich durch den Aufruf von runc abgeschlossen.

Unabhängig ausführen

RunC ist der Betriebszustand des Containers und beinhaltet keine Bildverwaltung. Wenn Sie es direkt verwenden, müssen Sie das Bild zuerst vorbereiten bereits erstellte BusyBox-Vorlage.

OCI-Bundle

🎜🎜🎜OCI-Bundle bezieht sich auf eine Reihe von Dateien, die dem OCI-Standard entsprechen. Diese Dateien enthalten alle zum Ausführen des Containers erforderlichen Daten. Sie werden in einem gemeinsamen Verzeichnis gespeichert, das die folgenden zwei Elemente enthält : 🎜
  • config.json Enthält Konfigurationsdaten für die Containerausführung.
  • Das Root-Dateisystem des Containers.
🎜Wenn Docker auf dem Host installiert ist, können Sie den Befehl docker export verwenden, um das vorhandene Image in das OCI-Bundle-Format zu exportieren . 🎜🎜🎜🎜Rootfs generieren🎜🎜🎜🎜Verwenden Sie die BusyBox-Vorlage direkt in Docker. 🎜🎜
----- 查看容器状态
# runc state mybusybox

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

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

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

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

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

----- 获取容器的资源使用情况
# runc events mybusybox
Nach dem Login kopieren
🎜🎜🎜🎜Die Konfigurationsdatei🎜🎜🎜🎜 befindet sich im Verzeichnis rootfs, das neben dem Stammverzeichnis auch allgemeine Binärdateien enthält. Sie benötigen außerdem eine config.json-Konfigurationsdatei, mit der Sie über die Runc-Spezifikation eine Konfigurationsvorlage generieren können. Code> Befehl. 🎜🎜Eine detaillierte Konfiguration finden Sie unter https://github.com/opencontainers/runtime-spec/blob/master/spec.md.🎜🎜Ändern Sie das Terminal <code class="Language-Plaintext Highlighter-Rouge"> Die Konfigurationsdatei „: true wird in False geändert, andernfalls ist dies nicht möglich Während der Erstellung wird tty zugewiesen, wenn runc die Verbindung trennt, ohne den Konsolen-Socket festzulegen. meldet einen Fehler. 🎜🎜Da das Terminal geschlossen ist, wird der Befehl außerdem in die Parameter "args": [ "sleep", "10000" ], geändert. 🎜🎜🎜🎜Starten: 🎜🎜Allgemeine Befehle🎜🎜rrreee🎜🎜Hot-Migration🎜🎜 besteht darin, einen CheckPoint-Vorgang für einen Container auszuführen, eine Reihe von Dateien abzurufen und ihn dann auf anderen Computern zu starten. 🎜🎜Empfohlenes Lernen: „🎜Docker-Video-Tutorial🎜“🎜

Das obige ist der detaillierte Inhalt vonWas ist Runc in Docker?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So verpacken Sie ein Projekt mit Pycharm So verpacken Sie ein Projekt mit Pycharm Apr 25, 2024 am 03:54 AM

Es gibt vier Möglichkeiten, ein Projekt in PyCharm zu verpacken: Als separate ausführbare Datei verpacken: In das EXE-Einzeldateiformat exportieren. Als Installationsprogramm verpackt: Setuptools-Makefile generieren und erstellen. Als Docker-Image verpacken: Geben Sie einen Image-Namen an, passen Sie die Build-Optionen an und erstellen Sie. Als Container verpacken: Geben Sie das zu erstellende Image an, passen Sie die Laufzeitoptionen an und starten Sie den Container.

Architektur und Praxis verteilter PHP-Systeme Architektur und Praxis verteilter PHP-Systeme May 04, 2024 am 10:33 AM

Die verteilte PHP-Systemarchitektur erreicht Skalierbarkeit, Leistung und Fehlertoleranz durch die Verteilung verschiedener Komponenten auf mit dem Netzwerk verbundene Maschinen. Die Architektur umfasst Anwendungsserver, Nachrichtenwarteschlangen, Datenbanken, Caches und Load Balancer. Zu den Schritten zur Migration von PHP-Anwendungen auf eine verteilte Architektur gehören: Identifizieren von Dienstgrenzen, Auswählen eines Nachrichtenwarteschlangensystems, Einführung eines Microservices-Frameworks, Bereitstellung für die Containerverwaltung, Diensterkennung

Docker schließt die lokale Bereitstellung des großen Open-Source-Modells LLama3 in drei Minuten ab Docker schließt die lokale Bereitstellung des großen Open-Source-Modells LLama3 in drei Minuten ab Apr 26, 2024 am 10:19 AM

Übersicht LLaMA-3 (LargeLanguageModelMetaAI3) ist ein groß angelegtes Open-Source-Modell für generative künstliche Intelligenz, das von Meta Company entwickelt wurde. Im Vergleich zur Vorgängergeneration LLaMA-2 gibt es keine wesentlichen Änderungen in der Modellstruktur. Das LLaMA-3-Modell ist in verschiedene Maßstabsversionen unterteilt, darunter kleine, mittlere und große, um unterschiedlichen Anwendungsanforderungen und Rechenressourcen gerecht zu werden. Die Parametergröße kleiner Modelle beträgt 8 B, die Parametergröße mittlerer Modelle beträgt 70 B und die Parametergröße großer Modelle erreicht 400 B. Beim Training besteht das Ziel jedoch darin, multimodale und mehrsprachige Funktionalität zu erreichen, und die Ergebnisse werden voraussichtlich mit GPT4/GPT4V vergleichbar sein. Ollama installierenOllama ist ein Open-Source-Großsprachenmodell (LL

Agile Entwicklung und Betrieb der PHP-Microservice-Containerisierung Agile Entwicklung und Betrieb der PHP-Microservice-Containerisierung May 08, 2024 pm 02:21 PM

Antwort: PHP-Microservices werden mit HelmCharts für eine agile Entwicklung bereitgestellt und mit DockerContainer für Isolation und Skalierbarkeit in Containern verpackt. Detaillierte Beschreibung: Verwenden Sie HelmCharts, um PHP-Microservices automatisch bereitzustellen, um eine agile Entwicklung zu erreichen. Docker-Images ermöglichen eine schnelle Iteration und Versionskontrolle von Microservices. Der DockerContainer-Standard isoliert Microservices und Kubernetes verwaltet die Verfügbarkeit und Skalierbarkeit der Container. Verwenden Sie Prometheus und Grafana, um die Leistung und den Zustand von Microservices zu überwachen und Alarme und automatische Reparaturmechanismen zu erstellen.

PI -Knotenunterricht: Was ist ein PI -Knoten? Wie installiere und richte ich einen PI -Knoten ein? PI -Knotenunterricht: Was ist ein PI -Knoten? Wie installiere und richte ich einen PI -Knoten ein? Mar 05, 2025 pm 05:57 PM

Detaillierte Erläuterungs- und Installationshandbuch für Pinetwork -Knoten In diesem Artikel wird das Pinetwork -Ökosystem im Detail vorgestellt - PI -Knoten, eine Schlüsselrolle im Pinetwork -Ökosystem und vollständige Schritte für die Installation und Konfiguration. Nach dem Start des Pinetwork -Blockchain -Testnetzes sind PI -Knoten zu einem wichtigen Bestandteil vieler Pioniere geworden, die aktiv an den Tests teilnehmen und sich auf die bevorstehende Hauptnetzwerkveröffentlichung vorbereiten. Wenn Sie Pinetwork noch nicht kennen, wenden Sie sich bitte an was Picoin ist? Was ist der Preis für die Auflistung? PI -Nutzung, Bergbau und Sicherheitsanalyse. Was ist Pinetwork? Das Pinetwork -Projekt begann 2019 und besitzt seine exklusive Kryptowährung PI -Münze. Das Projekt zielt darauf ab, eine zu erstellen, an der jeder teilnehmen kann

So installieren Sie Deepseek So installieren Sie Deepseek Feb 19, 2025 pm 05:48 PM

Es gibt viele Möglichkeiten, Deepseek zu installieren, einschließlich: kompilieren Sie von Quelle (für erfahrene Entwickler) mit vorberechtigten Paketen (für Windows -Benutzer) mit Docker -Containern (für bequem am besten, um die Kompatibilität nicht zu sorgen), unabhängig von der Methode, die Sie auswählen, bitte lesen Die offiziellen Dokumente vorbereiten sie sorgfältig und bereiten sie voll und ganz vor, um unnötige Schwierigkeiten zu vermeiden.

Wie kann die Leistung von Java-Funktionen durch Containerisierung optimiert werden? Wie kann die Leistung von Java-Funktionen durch Containerisierung optimiert werden? Apr 29, 2024 pm 03:09 PM

Die Containerisierung verbessert die Leistung von Java-Funktionen auf folgende Weise: Ressourcenisolation – Gewährleistung einer isolierten Computerumgebung und Vermeidung von Ressourcenkonflikten. Leicht – beansprucht weniger Systemressourcen und verbessert die Laufzeitleistung. Schneller Start – reduziert Verzögerungen bei der Funktionsausführung. Konsistenz – Entkoppeln Sie Anwendungen und Infrastruktur, um ein konsistentes Verhalten in allen Umgebungen sicherzustellen.

Stellen Sie JavaEE-Anwendungen mithilfe von Docker-Containern bereit Stellen Sie JavaEE-Anwendungen mithilfe von Docker-Containern bereit Jun 05, 2024 pm 08:29 PM

Stellen Sie Java EE-Anwendungen mithilfe von Docker-Containern bereit: Erstellen Sie eine Docker-Datei, um das Image zu definieren, erstellen Sie das Image, führen Sie den Container aus, ordnen Sie den Port zu und greifen Sie dann im Browser auf die Anwendung zu. Beispiel für eine JavaEE-Anwendung: Die REST-API interagiert mit der Datenbank und ist nach der Bereitstellung über Docker auf localhost zugänglich.

See all articles