Open Container Initiative
1. Image specification
An OCI Image is an ordered collection of root filesystem changes and the corresponding execution parameters for use within a container runtime
https://github.com/opencontainers/image-spec/blob/master/spec.md
1.1 manifest
It contains metadata (annotation = key, value pair) about the contents and dependencies of the image
JSON file
https://github.com/opencontainers/image-spec/blob/master/manifest.md
https://docs.docker.com/engine/reference/commandline/manifest/
1.2 image index (optional)
For platform specific version of image
1.3 image layout
1.4 file system layers
1.5 configuration
JSON file https://github.com/opencontainers/image-spec/blob/master/config.md
1.6 conversion
1.7 descriptor
Tools
2. Distribution specification
It describes the API that might be used by a registry to distribute images, to easily
- share,
- search,
- obtain and
- verify
container image
https://github.com/opencontainers/distribution-spec/blob/master/spec.md
It is implemented by Docker Registry and https://github.com/atlaskerr/stori
3. Runtime Specification
It aims to specify the configuration, execution environment, and lifecycle of a container.
An OCI Image is an ordered collection of root filesystem changes and the corresponding execution parameters for use within a container runtime
https://github.com/opencontainers/image-spec/blob/master/spec.md
1.1 manifest
It contains metadata (annotation = key, value pair) about the contents and dependencies of the image
JSON file
https://github.com/opencontainers/image-spec/blob/master/manifest.md
https://docs.docker.com/engine/reference/commandline/manifest/
1.2 image index (optional)
For platform specific version of image
1.3 image layout
1.4 file system layers
1.5 configuration
JSON file https://github.com/opencontainers/image-spec/blob/master/config.md
1.6 conversion
1.7 descriptor
Tools
- octool : Image validation, analysis and test https://github.com/kunalkushwaha/octool
- OCT (OCI Test) It is a light weight testing framework, using ocitools and 3rd-party plugin tools https://github.com/huawei-openlab/oct
- oci-runtime-tool is a collection of tools for working with the OCI runtime specification. https://github.com/opencontainers/runtime-tools
- ocitools is a collection of tools for working with the OCI specification. https://github.com/zenlint/ocitools
2. Distribution specification
It describes the API that might be used by a registry to distribute images, to easily
- share,
- search,
- obtain and
- verify
container image
https://github.com/opencontainers/distribution-spec/blob/master/spec.md
It is implemented by Docker Registry and https://github.com/atlaskerr/stori
3. Runtime Specification
It aims to specify the configuration, execution environment, and lifecycle of a container.
aims to specify the configuration, execution environment, and lifecycle of a container.
runc is Runtime specification OCI implementation
LifeCycle
3.1 create command
3.2 create runtime environment using config.json
3.3 start command
3.4 pre-start hook
3.5 user program specified by process
3.6 post-start hook
3.7 exit due to exit, error, kill, crash
3.8 delete
3.9 destroy container. undo create
3.10 post-stop hook
https://github.com/opencontainers/runtime-spec/blob/master/glossary.md
CRI = Container Runtime Interface = protocol buffers + gRPC APIs + Libraries
CRI = Container Runtime Interface = protocol buffers + gRPC APIs + Libraries
0 comments:
Post a Comment