Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> "Despite the importance of a shared standard, after six months of effort the Open Container Initiative (OCI) body has yet to decide whether it should or should not develop and standardize an image format. Today, the primary focus of the OCI community is creating standards for the container runtime environment, rather than the container image. Specs for container runtime features are also a worthy discussion, but we think there is a more urgent need – and a more open, industry-wide upside – for a standard container image specification."

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 want to assume good faith, but OCI is starting to look like standard-washing. What good is runC if you have to use docker pull to download images first?


You don't have to use docker pull. You can use any system capable of distributing a standard OCI bundle, including (but not limited to) docker.


runc doesnt use docker format containers, you just provide a filesystem. You can store your containers for runc by curling a tarfile if you like.


That isn't adequate. The reason LXC languished and Docker took off is because of immutable images, layers, Dockerfiles, and push/pull. If OCI has none of those then it is pointless.


I work with containers all day every day and the image format is really important

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.


OCI focuses on the intermediary runnable format (think "ELF for containers") for a simple pragmatic reason: to accomodate pre-existing container packaging systems which were not compatible with each other. A good analogy would be designing a common vm that different programming languages can compile to, without forcing all developers to adopt the same syntax (a hopeless task).

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".




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: