digraph G { { imageIndex [shape=note, label="Image Index\n<>\napplication/vnd.oci.image.index.v1+json\napplication/vnd.docker.distribution.manifest.list.v2+json"] { rank=same manifest [shape=note, label="Image manifest\napplication/vnd.oci.image.manifest.v1+json\napplication/vnd.docker.distribution.manifest.v2+json"] } config [shape=note, label="Image config JSON\napplication/vnd.oci.image.config.v1+json\napplication/vnd.docker.container.image.v1+json"] layer [shape=note, label="Layer tar archive\napplication/vnd.oci.image.layer.v1.tar\napplication/vnd.oci.image.layer.v1.tar+gzip\napplication/vnd.oci.image.layer.nondistributable.v1.tar\napplication/vnd.oci.image.layer.nondistributable.v1.tar+gzip\napplication/vnd.docker.image.rootfs.diff.tar.gzip"] } imageIndex -> imageIndex [label="1..*"] imageIndex -> manifest [label="1..*"] manifest -> config [label="1..1"] manifest -> layer [label="1..*"] manifest -> manifest [label="0..1"]; }