-
Notifications
You must be signed in to change notification settings - Fork 687
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Clean-up spec to remove non-spec-ish items
Signed-off-by: Doug Davis <[email protected]>
- Loading branch information
Doug Davis
committed
Nov 16, 2016
1 parent
7cab1f8
commit b0a5eff
Showing
5 changed files
with
62 additions
and
56 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,2 @@ | ||
code-of-conduct.md | ||
/oci-validate-examples | ||
output |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
# Open Container Initiative Image Format Specification | ||
|
||
This specification defines how to create an OCI Image, which will generally be done by a build system, and output an [image manifest](manifest.md), a set of [filesystem layers](layer.md), and an [image configuration](config.md). | ||
|
||
The goal of this specification is to enable the creation of interoperable tools for building, transporting, and preparing a container image to run. | ||
|
||
## Table of Contents | ||
|
||
- [Introduction](spec.md) | ||
- [Notational Conventions](#notational-conventions) | ||
- [Overview](#overview) | ||
- [Understanding the Specification](#understanding-the-specification) | ||
- [Media Types](media-types.md) | ||
- [Content Descriptors](descriptor.md) | ||
- [Image Layout](image-layout.md) | ||
- [Image Manifest](manifest.md) | ||
- [Image Manifest List](manifest-list.md) | ||
- [Filesystem Layers](layer.md) | ||
- [Image Configuration](config.md) | ||
- [Canonicalization](canonicalization.md) | ||
|
||
# Notational Conventions | ||
|
||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as described in [RFC 2119](http://tools.ietf.org/html/rfc2119) (Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997). | ||
|
||
The key words "unspecified", "undefined", and "implementation-defined" are to be interpreted as described in the [rationale for the C99 standard][c99-unspecified]. | ||
|
||
# Overview | ||
|
||
At a high level the image manifest contains metadata about the contents and dependencies of the image including the content-addressable identity of one or more [filesystem layer changeset](layer.md) archives that will be unpacked to make up the final runnable filesystem. | ||
The image configuration includes information such as application arguments, environments, etc. | ||
The combination of the image manifest, image configuration, and one or more filesystem layers is called the "OCI Image". | ||
|
||
![](img/build-diagram.png) | ||
|
||
Once built the OCI Image can then be discovered by name, downloaded, verified by hash, trusted through a signature, and unpacked into an [OCI Runtime Bundle](https://github.com/opencontainers/runtime-spec/blob/master/bundle.md). | ||
|
||
![](img/run-diagram.png) | ||
|
||
## Understanding the Specification | ||
|
||
The [OCI Image Media Types](media-types.md) document is a starting point to understanding the overall structure of the specification. | ||
|
||
The high-level components of the spec include: | ||
|
||
* An archival format for container images, consisting of an [image manifest](manifest.md), an [image layout](image-layout.md), a set of [filesystem layers](layer.md), and [image configuration](config.md) (base OCI layer) | ||
* A [process of referencing container images by a cryptographic hash of their content](descriptor.md) (base OCI layer) | ||
* A format for [storing CAS blobs and references to them](image-layout.md) (optional OCI layer) | ||
* Signatures that are based on signing image content address (optional OCI layer) | ||
* Naming that is federated based on DNS and can be delegated (optional OCI layer) | ||
|
||
[c99-unspecified]: http://www.open-std.org/jtc1/sc22/wg14/www/C99RationaleV5.10.pdf#page=18 |