在docker中,RunC是一个根据OCI标准创建并运行容器的CLI tool,一个遵循OCI标准的用来运行容器的命令行工具。runC是docker中最为核心的部分,容器的创建、运行、销毁等等操作最终都将通过调用runc完成。
本教程操作环境:linux5.9.8系统、docker-1.13.1版、Dell G3电脑。
OCI 定义了容器运行时标准,runC 是 Docker 按照开放容器格式标准 Open Container Format, OCF 制定的一种具体实现。
该项目从 Docker 的 libcontainer 中迁移来,实现了容器启停、资源隔离等功能,所以,可以直接通过该工具运行容器。
简介
所谓容器运行时 (Container Runtime) 包括了容器管理和容器镜像,Open Container Initiative, OCI 是容器运行时的工业标准,包括了:
A) 运行时标准 runtime-spec;
B) 容器镜像标准 image-spec 。
简单来说,容器镜像标准定义了容器镜像的打包形式,而运行时标准定义了如何去运行一个容器。
RunC 是一个根据OCI标准创建并运行容器的CLI tool,是一个遵循 OCI 标准的用来运行容器的命令行工具,它也是一个 Runtime 的实现。
Docker
老版本里,使用需要调用 docker-runc
,而最新的 CE 版本里,直接修改为了 runc
命令。
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 -
配置文件
在 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
在启动了之后,可以通过 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中文网其他相关文章!

在Linux上使用Docker可以提高开发效率和简化应用部署。1)拉取Ubuntu镜像:dockerpullubuntu。2)运行Ubuntu容器:dockerrun-itubuntu/bin/bash。3)创建包含nginx的Dockerfile:FROMubuntu;RUNapt-getupdate&&apt-getinstall-ynginx;EXPOSE80。4)构建镜像:dockerbuild-tmy-nginx.。5)运行容器:dockerrun-d-p8080:80

Docker在Linux上可以简化应用部署和管理。1)Docker是容器化平台,将应用及其依赖打包进轻量、可移植容器。2)在Linux上,Docker利用cgroups和namespaces实现容器隔离和资源管理。3)基本用法包括拉取镜像和运行容器,高级用法如DockerCompose可定义多容器应用。4)调试常用dockerlogs和dockerexec命令。5)性能优化可通过多阶段构建减小镜像大小,保持Dockerfile简洁是最佳实践。

Docker是一种基于Linux容器技术的工具,用于打包、分发和运行应用,提升应用的可移植性和可扩展性。1)通过dockerbuild和dockerrun命令,可以构建和运行Docker容器。2)DockerCompose用于定义和运行多容器的Docker应用,简化微服务管理。3)使用多阶段构建可以优化镜像大小,提升应用启动速度。4)查看容器日志是调试容器问题的有效方法。

Docker 容器启动步骤:拉取容器镜像:运行 "docker pull [镜像名称]"。创建容器:使用 "docker create [选项] [镜像名称] [命令和参数]"。启动容器:执行 "docker start [容器名称或 ID]"。检查容器状态:通过 "docker ps" 验证容器是否正在运行。

查看 Docker 日志的方法包括:使用 docker logs 命令,例如:docker logs CONTAINER_NAME使用 docker exec 命令运行 /bin/sh 并查看日志文件,例如:docker exec -it CONTAINER_NAME /bin/sh ; cat /var/log/CONTAINER_NAME.log使用 Docker Compose 的 docker-compose logs 命令,例如:docker-compose -f docker-com

可以通过以下步骤查询 Docker 容器名称:列出所有容器(docker ps)。筛选容器列表(使用 grep 命令)。获取容器名称(位于 "NAMES" 列中)。

在 Docker 中创建容器: 1. 拉取镜像: docker pull [镜像名] 2. 创建容器: docker run [选项] [镜像名] [命令] 3. 启动容器: docker start [容器名]

退出 Docker 容器的四种方法:容器终端中使用 Ctrl D 快捷键容器终端中输入 exit 命令宿主机终端中使用 docker stop <container_name> 命令宿主机终端中使用 docker kill <container_name> 命令(强制退出)


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

Dreamweaver CS6
视觉化网页开发工具

WebStorm Mac版
好用的JavaScript开发工具

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

记事本++7.3.1
好用且免费的代码编辑器