PYQ Blog

「想成为真正的工程师」

OCI Image Specification——Content Descriptors

OCI Content Descriptors

OCI Content Descriptors OCI镜像由多个不同的组件组成,这些组件排列在一个 Merkle Directed Acyclic Graph (DAG,有向无环图) 中,可以参考这篇文章A Peek into Docker Images。Merkle DAG中各组件之间的引用通过内容描述符来表达,内容描述符描述了目标内容的布局。内容描述符包括内容类型、内容标识符(摘要)和...

OCI Image Specification——Media Types

OCI Image Media Types

OCI Image Media Types OCI镜像规范定义的镜像文件相关的媒体类型如下(原文很清楚,这里就不翻译了),各媒体类型所表示的资源定义后文再详细展开: application/vnd.oci.descriptor.v1+json: Content Descriptor application/vnd.oci.layout.header.v1+json: OCI L...

OCI Runtime Specification——Linux Configuration

OCI Runtime-Spec/config.json (linux spec)

本篇主要是container configuration(config.json)中linux容器规范部分。 Linux容器规范使用了各种内核特性,如namespaces、cgroups、capabilities、LSM 和文件系统隔离。 Default Filesystems Linux ABI包括系统调用和几个特殊的文件路径,需要为Linux环境下运行的应用程序正确设置这些文件路径...

OCI Runtime Specification——Configuration

OCI Runtime-Spec/config.json

OCI Runtime Spec Configuration 容器的配置文件包含了构建标准容器的元数据,包括用户指定进程、运行环境和环境变量等。 本篇介绍以Linux平台为主。 Specification version 只含ociVersion一个元素用于标识oci运行时规范版本号。 1 2 // string, REQUIRED "ociVersion": "0.1.0" ...

OCI Runtime Specification

OCI Runtime-Spec

本篇是对Open Container Initiative Runtime Specification的介绍,主要是Linux平台。 OCI Runtime-Spec主要包括对容器配置文件、运行环境和生命周期的规范: 容器的配置文件 (config.json),详细说明了创建容器的平台和其他详细信息 执行环境确保容器中的应用程序在不同运行时的环境一致 容器的生命周期定义了容...

NVIDIA-Container-Toolkit—源码阅读—hook

NVIDIA-Container-Toolkit—CodeReading—hook

nvidia-container-runtime-hook hook_config.go 定义的一些结构体和变量: 1 2 3 4 5 6 const ( configPath = "/etc/nvidia-container-runtime/config.toml" driverPath = "/run/nvidia/driver" ) var defaultPaths = [....

NVIDIA-Container-Toolkit—源码阅读—runtime

NVIDIA-Container-Toolkit—CodeReading—runtime

modifier stable.go 定义了一个stableRuntimeModifier结构体用于加入hook: 1 2 3 4 type stableRuntimeModifier struct { logger logger.Interface nvidiaContainerRuntimeHookPath string } ...

How GitHub contributions counts

why-are-your-contributions-not-showing-up-on-my-profile?

前言 “TL;DR”:给自己的repo提交了,但是并未显示在GitHub的profile中。一开始以为是private repo的原因,但是在profile中开启了private contributions也没有解决问题。 “RDTM”:why-are-my-contributions-not-showing-up-on-my-profile? Why? 只有如下操作计入contri...

NVIDIA-Container-Toolkit—源码阅读—ctk

NVIDIA-Container-Toolkit—CodeReading—ctk

nvidia-ctk main.go 定义了一个options结构体,用于表示CLI启动的模式,包括Debug和Quiet模式: 1 2 3 4 type options struct { Debug bool Quiet bool } main函数创建了一个叫nvidia-ctk的cli程序,flag包括–debug和–quiet,这两个flag和options中的两个变量相...

NVIDIA-Container-Toolkit—源码阅读—pkg

NVIDIA-Container-Toolkit—CodeReading—pkg

config enginee docker option.go 属于docker包。 定义的一些类型结构体:命名为builder应该是设计模式中的builder模式。 1 2 3 4 5 6 type builder struct { logger logger.Interface path string } // Option defines a function th...