6 ms·
CoreOS Overview, Part One
- natch 11y agoPardon my ignorance... Is CoreOS an alternative to Docker? And if yes, what are the tradeoffs between the two?
- tayo42 11y agoIts a company that develops a bunch of software and some of it makes containers easier to use. There's also their distro coreos. They are working on rkt which is like docker from what ive seen. The feeling I get from them is their trying to have their own branded container stack.
- bjt 11y agoIMO their container stack is much better decoupled than Docker's. In Docker's early days they made a big deal about how a standard container spec could revolutionize software the way the shipping container spec revolutionized the transport of goods. An independent spec never emerged though. The Docker monolith got bigger and bigger. They threw out standalone mode, so instead of being able to just be a container runtime, Docker basically owned the whole host, and your logging, networking, process monitoring, etc. all had to be done Docker's way. CoreOS created the App Container spec (https://github.com/appc https://github.com/appc) to deliver on the promise that Docker started with. They eventually shamed Docker into becoming part of the Open Container Initiative (https://www.opencontainers.org/ https://www.opencontainers.org/). Hopefully that means we'll get to a point where application images can truly be shipped anywhere and run anywhere, without having to give any one company control of your whole stack.
- justincormack 11y agoAs far as I can see rkt has made no effort to implement the opencontainers spec, unlike docker. Meanwhile Docker is implementing all the pieces you are asking for, eg containerd and runc are standalone runtime parts which will break up the monolithic structure, using the spec.
- philips 11y agoI spend significant time helping the effort (Brandon Philips, CoreOS). But, today there just isn't anything to implement in rkt. The primary focus of OCI has been a rootfs on-disk and a json file that contains details of cgroups, namespaces, etc. This is fine work to be doing but it doesn't tackle the more difficult and useful work of creating inter-op for developers up the stack who don't care about the internals of containers. Here is a high-level post on the state of the world: https://coreos.com/blog/making-sense-of-standards/ https://coreos.com/blog/making-sense-of-standards/ Here is a video that I gave that summarizes some of my thoughts: http://containersummit.io/events/sf-2015/videos/container-ecosystem-standards-needs-and-progress http://containersummit.io/events/sf-2015/videos/container-ec... A more detailed discussion on the OCI mailing list from earlier this year: https://groups.google.com/a/opencontainers.org/d/msg/dev/uo11avcWlQQ/EzQVIGhhEAAJ https://groups.google.com/a/opencontainers.org/d/msg/dev/uo1... tl;dr Container formats are important to get right. But, today the OCI effort is largely irrelevant for people packaging and shipping their code in a application containers. edit: Also when OCI finally makes it to a stable release we will likely add tooling to help import into rkt: https://github.com/coreos/rkt/pull/1509 https://github.com/coreos/rkt/pull/1509
- vidarh 11y agoCoreOS is a Linux distro based on Gentoo. It is noteworthy for being very small, built for "all-or-nothing" automated updates, and geared for clustering. Basically if installed on disk (you can also boot it over the network or from a USB stick etc.) it updates by having two system partitions - one "known good" because you've successfully booted from it, and one used to download new updates to, and then will (by default) automatically reboot and switch to update. The system you end up in is basically systemd + Etcd + Fleet (with Kubernetes on the way) + Docker and rkt, with very little else included. If you want to spin up a large cluster where everything will run in Docker or rkt containers, that's something CoreOS is well suited for.
- jsmthrowaway 11y agoCoreOS is a fork of ChromeOS, not Gentoo. Both just happen to use emerge. It might poach some Gentoo packages to save work (I don't recall off hand) but build and usage is very different from Gentoo. Importantly, emerge is build-time trivia and has no bearing on the final product; there is not even an emerge binary in a CoreOS image. (I've seen this meme before, with people - not you - dismissing CoreOS because it's "based on Gentoo," due to the presence of emerge in the build. Pass this clarifying point on to your friends.)
- mrpdaemon 11y agoCoreOS is built using Gentoo. Gentoo is a meta-distribution whose main contribution is the portage tree which is a collective of ebuilds that describe how to build each individual package, the dependencies, the configuration flags etc. Literally every user who uses Gentoo builds and produces their own linux distribution, with their own CFLAGS, USE flags etc. ChromeOS is built using Gentoo, so is CoreOS. Neither ChromeOS nor CoreOS are Gentoo based distros because Gentoo is a toolkit to build distributions, not a distribution itself.
- jimmcslim 11y agoBut it seems that CoreOS is more suitable as being the underlying OS on which containers are run, rather than being the basis of a container image?
- ecthiender 11y agoNo. CoreOS is a Linux distro focused on running applications packaged as containers (Docker or anything else) on top of it. It is so focused on running application in containers that it does not even have a package manager to install packages (Hence, they have different update/patching mechanism). Their whole philosophy is you run CoreOS as the base OS for your cluster, and run your applications on top of it packaged as containers. It also provides a bunch of tools for your cluster management and service discovery across containers/applications in your cluster. PS: the above is a very summarized, focused answer to your question. CoreOS is also much more than what I have mentioned.
- alexc05 11y agoIn addition, CoreOS has its own version of a docker-like thing called rocket https://coreos.com/blog/rocket/ https://coreos.com/blog/rocket/ I personally found this blog post a bit of a a-ha moment in terms of understanding what docker is vs. CoreOS (and, at the time I was also researching what kubernetes is and how to run it)