Docker's Layers

Docker's Layers

Filevine Tech Talk
May 25th, 2023

What is Docker?

Docker is a tool that allows developers to package their applications into containers.

What is a Container?

A container is a standard unit of software that packages up code and all its dependencies so the application runs reliably from one computing environment to another.

What is a Layer?

A layer is a read-only file along with metadata that is stacked on top of another. When you make a change to a file or metadata, a new layer is created (copy-on-write).

What is an OCI Layer?

OCI layers follow the OCI specification for storing and identifying layers and images.

https://github.com/opencontainers/image-spec/blob/main/spec.md

Layers are immutable

  • Secrets will persist
  • Size will persist
  • ...even if you can't get to it anymore

Layers allow for caching

If it's been done before, do it no more

Principles in practice

Demo

https://github.com/brendonthiede/dockers-layers

Questions?

Thank you!