I haven't been following the OCI at all, but could somebody shed some light as to why the runtime is the most important part to standardize? Also, any insight as to whether or not the container image format should be standardized?
I haven't been following the OCI at all, but could somebody shed some light as to why the runtime is the most important part to standardize? Also, any insight as to whether or not the container image format should be standardized?
I have code on my laptop and I need to package it for many environments:
A development VM A CI service Pushed and stored at rest in a registry Run on multiple runtime services like AWS ECS and Lambda
It would be really nice if one image worked everywhere. Having to rebuild is at the very least inefficient, but sometimes disastrous if a different dependency or language version sneaks in.
The Docker image format and registry API is becoming ubiquitous. We have also been using tarballs for builds for decades.
Does it need to be standardized? Probably not.
But it would be nice if we can do a better job of cooperating this generation than we did with VM images.
Ironically this was specifically to accomodate the ACI format pushed by CoreOS, which is completely incompatible with Docker images. We designed OCI and runc to allow both Docker and ACI to target a common format and low-level runtime. The reasoning was "let's deliver a solid building blick which everybody can use instead of boiling the ocean with a giant over-reaching spec".