digraph ociimage { rankdir=LR; node [shape=box]; edge [splines=polyline]; lrank [style=invisible][color=white]; "manifest A"[label=<
image manifest (platform A)
- schema version
- media type
- config : descriptor
- layers : array of descriptors
- (annotations)
>]; "image index"[label=<
image index
- schema version
- media type
- manifests : array of descriptors
- (annotations)
>]; // references edge [color=red][style=dashed]; client [style=invisible][color=white]; client -> "image index"[label="image reference"]; client -> "manifest A"[label="image reference"]; // descriptors edge [color=brown][style=solid]; "image index" -> "manifest A"; "image index" -> "image manifest (platform B)"; "configuration"[label=<
configuration
- rootfs/diff_ids : array of layer ids
- container config
- history
>]; "manifest A" -> "configuration"; "layer 0"[label=<
layer
file system additions, overwrites, and deletions
>]; "layer 1"[label=layer]; "layer 2"[label=layer]; "manifest A" -> "layer 0"[label=0]; "manifest A" -> "layer 1"[label=1]; "manifest A" -> "layer 2"[label=2]; // ids edge [color=blue][style=dotted]; "client" -> "configuration"[label="image id"]; "configuration" -> "layer 0"[label=0]; "configuration" -> "layer 1"[label=1]; "configuration" -> "layer 2"[label=2]; // key subgraph cluster { k1 [label="Key:"][peripheries="0"]; node [style=invisible][color=white]; k2; k3; k4; node [style=solid][color=black]; k1 -> k2[color=red][style=dashed][label=<
image reference
- hostname
- path
- (tag)
- (SHA-256 digest of compressed content)
>]; k2 -> k3[color=brown][style=solid][label=<
descriptor
targets content with the following properties:
- media type
- SHA-256 digest of compressed content
- size
- (urls)
- (annotations)
>]; k3 -> k4[color=blue][style=dotted][label=<
id
- SHA-256 digest of uncompressed content
>]; } { rank=same; lrank -> "layer 2" -> "layer 1" -> "layer 0" [style=invis] } { rank=same; "manifest A", "image manifest (platform B)" } }