2015 dockercon lightning talk: multi-arch registry support

Post on 14-Apr-2017

986 Views

Category:

Software

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Fattening up your Docker Images: Multi-architecture support in the Docker Registry

Phil EstesIBM Senior Technical Staff, Docker core maintainerIBM Cloud Open Technologies

Current State of the Image World:

2

What should happenwhen I run...

Well, hopefully something like this:

3

4

But what if I have something like ...

What really happens:

5

—Vincent Batts@vbatts

“Oh mans.”

6

Hacking Multi-architecture

Creating special Hub repositories for an architecture’s images:★ Example: a repo named “ ” for little-endian POWER 64-bit images

Standardized prefix for all images for a given architecture:★ Example: Hypriot project “ “ images for Raspberry Pi

Using tags to denote architecture★ Example: Architecture in tag, like , ,

Today’s workarounds

The Right Solution

Properly handles and records runtime architecture information★ Assembled on ` `

Adds a new “fat manifest” type referencing single-architecture manifests★ Keyed on architecture details (e.g. os, arch, & model)★ Feature of ` ` to combine multiple single-architecture manifest references into a fat

manifest wrapper

A new proposed manifest format

https://github.com/docker/distribution/pull/1068 ( Which was preceded by PR #993, which was preceded by PR #62 .. )

What Should Happen?Looking into the future

How will it all come together?

Docker engine runtimes for new CPU architectures & operating systems★ ARM: Hypriot/Raspberry Pi support underway; POWER/System z: IBM has builds/some distros

will be shipping Docker on ppc64le; Windows: Microsoft has TP3; FreeBSD: port available, etc.

Images created for each engine runtime platform★ Will require design of new subcommand to handle the assembly of disparate “architecture/os-

specific” images into a fat manifest ( command?)★ Engine manifest parsing algorithm will be updated to parse both single-platform and fat (multi-

platform) manifests automatically★ Considerations: Docker Content Trust (push fat manifest/images from a single system with keys),

cross-compilation scenarios (e.g. hand-built container image from cross-compiled binaries), ?

What are the ingredients..

Thank you!Phil Estes@estespestesp@gmail.com

top related