moby/image/spec
Paweł Gronowski 366a5f1d74
image/spec: Add Go structs
Add Go structs describing the image spec which extend the OCI types.

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2023-08-31 12:29:45 +02:00
..
specs-go image/spec: Add Go structs 2023-08-31 12:29:45 +02:00
README.md image/spec: Add Healthcheck.StartInterval (v1.3) 2023-08-31 11:22:54 +02:00
spec.md image/spec: Add Healthcheck.StartInterval (v1.3) 2023-08-31 11:22:54 +02:00
v1.1.md image/spec: Fix typo in "superseded" 2023-08-31 10:35:14 +02:00
v1.2.md image/spec: Add Healthcheck.StartInterval (v1.3) 2023-08-31 11:22:54 +02:00
v1.md image/spec: Fix typo in "superseded" 2023-08-31 10:35:14 +02:00

Docker Image Specification v1.

This directory contains documents about Docker Image Specification v1.X.

The Docker Image Specification is the image specification as used by the Docker Engine, and was used as foundation of the OCI image specification.

The Docker Image Specification provides a superset of the OCI Image specification; it is OCI-compatible, but some extensions that are specific to the Docker Engine implementation.

Refer to spec.md for the current version of the Docker Image Specification, and the OCI Image specification for an in-depth specification of the OCI Image specs.

The v1 file layout and manifests are no longer used in Moby and Docker, except in docker save and docker load.

However, v1 Image JSON (application/vnd.docker.container.image.v1+json) has been still widely used and officially adopted in V2 manifest and in OCI Image Format Specification.

v1.X rough Changelog

All 1.X versions are compatible with older ones.

v1.3

  • Implemented in Docker v25.0

Changes:

  • StartInterval was added to the Healthcheck struct in the Image JSON

v1.2

  • Implemented in Docker v1.12 (July, 2016)
  • The official spec document was written in August 2016 (#25750)

Changes:

  • Healthcheck struct was added to Image JSON

v1.1

  • Implemented in Docker v1.10 (February, 2016)
  • The official spec document was written in April 2016 (#22264)

Changes:

  • IDs were made into SHA256 digest values rather than random values
  • Layer directory names were made into deterministic values rather than random ID values
  • manifest.json was added

v1

  • The initial revision
  • The official spec document was written in late 2014 (#9560), but actual implementations had existed even earlier