Container Linux achieves additional security and reliability of its operating system updates by employing FastPatch as a dual-partition scheme for the read-only part of its installation, meaning that the updates are performed as a whole and installed onto a passive secondary boot partition that becomes active upon a reboot or kexec. This approach avoids possible issues arising from updating only certain parts of the operating system, ensures easy rollbacks to a known-to-be-stable version of the operating system, and allows each boot partition to be signed for additional security. The root partition and its root file system are automatically resized to fill all available disk-space upon reboots; while the root partition provides read-write storage space, the operating system itself is mounted read-only under /usr.
Container Linux provides etcd, a daemon that runs across all computers in a cluster and provides a dynamic configuration registry, allowing various configuration data to be easily and reliably shared between the cluster members. Since the key–value data stored within etcd is automatically distributed and replicated with automated master election and consensus establishment using the Raft algorithm, all changes in stored data are reflected across the entire cluster, while the achieved redundancy prevents failures of single cluster members from causing data loss. Beside the configuration management, etcd also provides service discovery by allowing deployed applications to announce themselves and the services they offer. Communication with etcd is performed through an exposed REST-based API, which internally uses JSON on top of HTTP; the API may be used directly (through curl or wget, for example), or indirectly through etcdctl, which is a specialized command-line utility also supplied by CoreOS. etcd is also used in Kubernetes software.
Container Linux also provides the fleet cluster manager, which controls Container Linux's separate systemd instances at the cluster level. As of 2017, "fleet" is no longer actively developed and is deprecated in favor of Kubernetes. By using fleetd, Container Linux creates a distributed init system that ties together separate systemd instances and a cluster-wide etcd deployment; internally, fleetd daemon communicates with local systemd instances over D-Bus, and with the etcd deployment through its exposed API. Using fleetd allows the deployment of single or multiple containers cluster-wide, with more advanced options including redundancy, failover, deployment to specific cluster members, dependencies between containers, and grouped deployment of containers. A command-line utility called fleetctl is used to configure and monitor this distributed init system; internally, it communicates with the fleetd daemon using a JSON-based API on top of HTTP, which may also be used directly. When used locally on a cluster member, fleetctl communicates with the local fleetd instance over a Unix domain socket; when used from an external host, SSH tunneling is used with authentication provided through public SSH keys.
All of the above-mentioned daemons and command-line utilities (etcd, etcdctl, fleetd and fleetctl) are written in the Go language and distributed under the terms of the Apache License 2.0.
Following its acquisition of CoreOS, Inc. in January 2018, Red Hat announced that it would be merging CoreOS Container Linux with Red Hat's Project Atomic to create a new operating system, Red Hat CoreOS, while aligning the upstream Fedora Project open source community around Fedora CoreOS, combining technologies from both predecessors.
For those who are putting together large, distributed systems—web applications being a prime example—CoreOS would appear to have a lot of interesting functionality. It should allow applications of that type to grow and shrink as needed with demand, as well as provide a stable platform where upgrades are not a constant headache. For "massive server deployments", CoreOS, or something with many of the same characteristics, looks like the future.
"CoreOS Linux is now Container Linux". coreos.com. Retrieved December 20, 2016. https://coreos.com/blog/tectonic-self-driving.html#coreos-linux-is-now-container-linux
Libby Clark (September 9, 2013). "Brandon Philips: How the CoreOS Linux Distro Uses Cgroups". Linux.com. Archived from the original on February 22, 2014. Retrieved February 13, 2014. https://web.archive.org/web/20140222051301/http://www.linux.com/news/featured-blogs/200-libby-clark/737364-brandon-philips-how-the-coreos-linux-distro-uses-cgroups
Cade Metz (August 21, 2013). "Linux Hackers Rebuild Internet From Silicon Valley Garage". Wired. Retrieved February 13, 2014. https://www.wired.com/wiredenterprise/2013/08/coreos-the-new-linux/
"CoreOS – a new approach to Linux-based server systems". itnews2day.com. August 22, 2013. Archived from the original on November 29, 2014. Retrieved March 26, 2014. https://web.archive.org/web/20141129021412/http://itnews2day.com/2013/08/22/coreos-linux-based-server-systems/
"CoreOS documentation: Using CoreOS". coreos.com. Archived from the original on February 23, 2014. Retrieved February 13, 2014. https://web.archive.org/web/20140223040854/https://coreos.com/using-coreos/
"Building development images: Updating portage-stable ebuilds from Gentoo". coreos.com. Archived from the original on July 14, 2017. Retrieved May 24, 2016. https://web.archive.org/web/20170714053215/https://coreos.com/os/docs/latest/sdk-building-development-images.html#updating-portage-stable-ebuilds-from-gentoo
"Distributions based on Gentoo". gentoo.org. March 25, 2016. Retrieved May 24, 2016. https://wiki.gentoo.org/wiki/Distributions_based_on_Gentoo
"CoreOS – a new approach to Linux-based server systems". itnews2day.com. August 22, 2013. Archived from the original on November 29, 2014. Retrieved March 26, 2014. https://web.archive.org/web/20141129021412/http://itnews2day.com/2013/08/22/coreos-linux-based-server-systems/
Brian Harrington (July 8, 2014). "CoreOS: Anatomy of a CoreOS update". youtube.com. Rackspace. Retrieved July 25, 2014. https://www.youtube.com/watch?v=JeICd9XyXfY&t=422
Cade Metz (August 21, 2013). "Linux Hackers Rebuild Internet From Silicon Valley Garage". Wired. Retrieved February 13, 2014. https://www.wired.com/wiredenterprise/2013/08/coreos-the-new-linux/
Alex Polvi (July 25, 2014). "CoreOS Stable Release". coreos.com. Retrieved August 28, 2014. https://coreos.com/blog/stable-release/
"CoreOS Release Notes". coreos.com. Archived from the original on November 11, 2020. Retrieved August 28, 2014. https://web.archive.org/web/20201111201601/https://coreos.com/releases/
Brandon Philips (January 28, 2015). "etcd 2.0 Release – First Major Stable Release". coreos.com. Retrieved June 14, 2015. https://coreos.com/blog/etcd-2.0-release-first-major-stable-release/
"End-of-life announcement for CoreOS Container Linux". coreos.com. Retrieved August 16, 2020. https://coreos.com/os/eol/
"Fedora CoreOS Documentation :: Fedora Docs Site". docs.fedoraproject.org. Retrieved August 16, 2020. https://docs.fedoraproject.org/en-US/fedora-coreos/
Jonathan Corbet (October 29, 2007). "Notes from a container". LWN.net. Retrieved July 3, 2016. https://lwn.net/Articles/256389/
Jake Edge (November 19, 2014). "Control group namespaces". LWN.net. Retrieved July 3, 2016. https://lwn.net/Articles/621006/
Libby Clark (September 9, 2013). "Brandon Philips: How the CoreOS Linux Distro Uses Cgroups". Linux.com. Archived from the original on February 22, 2014. Retrieved February 13, 2014. https://web.archive.org/web/20140222051301/http://www.linux.com/news/featured-blogs/200-libby-clark/737364-brandon-philips-how-the-coreos-linux-distro-uses-cgroups
"CoreOS documentation: Using CoreOS". coreos.com. Archived from the original on February 23, 2014. Retrieved February 13, 2014. https://web.archive.org/web/20140223040854/https://coreos.com/using-coreos/
"CoreOS documentation: Using Docker with CoreOS". coreos.com. Archived from the original on August 4, 2016. Retrieved June 14, 2015. https://web.archive.org/web/20160804005603/https://coreos.com/using-coreos/containers/
"Docker 0.9: Introducing execution drivers and libcontainer". docker.com. March 10, 2014. Retrieved January 20, 2015. http://blog.docker.com/2014/03/docker-0-9-introducing-execution-drivers-and-libcontainer/
Libby Clark (September 9, 2013). "Brandon Philips: How the CoreOS Linux Distro Uses Cgroups". Linux.com. Archived from the original on February 22, 2014. Retrieved February 13, 2014. https://web.archive.org/web/20140222051301/http://www.linux.com/news/featured-blogs/200-libby-clark/737364-brandon-philips-how-the-coreos-linux-distro-uses-cgroups
"CoreOS documentation: Using Docker with CoreOS". coreos.com. Archived from the original on August 4, 2016. Retrieved June 14, 2015. https://web.archive.org/web/20160804005603/https://coreos.com/using-coreos/containers/
Libby Clark (January 30, 2015). "CoreOS Co-Founder Alex Polvi Talks Containers, Rocket vs. Docker, and More". Linux.com. Retrieved June 14, 2015. https://www.linux.com/news/featured-blogs/200-libby-clark/806347-collaboration-summit-keynote-alex-polvi-coreos
Charles Babcock (February 20, 2015). "Rocket Containers: How CoreOS Plans To Challenge Docker". informationweek.com. Retrieved June 14, 2015. http://www.informationweek.com/cloud/infrastructure-as-a-service/rocket-containers-how-coreos-plans-to-challenge-docker/d/d-id/1319167
Alex Polvi (December 1, 2014). "CoreOS is building a container runtime, rkt". coreos.com. Retrieved June 14, 2015. https://coreos.com/blog/rocket/
Josh Berkus (February 4, 2015). "New etcd, appc, and Rocket releases from CoreOS". LWN.net. Retrieved June 22, 2015. https://lwn.net/Articles/631630/
Josh Berkus (May 13, 2015). "CoreOS Fest and the world of containers, part 1". LWN.net. Retrieved June 22, 2015. https://lwn.net/Articles/644089/
Nathan Willis (December 3, 2014). "The Rocket containerization system". LWN.net. Retrieved June 22, 2015. https://lwn.net/Articles/624349/
McAllister, Neil (June 22, 2015). "Docker and chums unveil standards org for software containers". Data Centre. The Register. Retrieved January 19, 2017. Announced at the DockerCon conference in San Francisco on Monday, the Open Container Project (OCP) will maintain and develop a common container runtime and image format based in part on code and specs donated by Docker. https://www.theregister.co.uk/2015/06/22/open_container_project/
Frederic Lardinois (June 22, 2015). "Docker, CoreOS, Google, Microsoft, Amazon and others come together to develop common container standard". TechCrunch. Retrieved June 24, 2015. https://techcrunch.com/2015/06/22/docker-coreos-google-microsoft-amazon-and-others-agree-to-develop-common-container-standard/
"Industry Leaders Unite to Create Project for Open Container Standards". opencontainers.org. June 22, 2015. Archived from the original on August 13, 2015. Retrieved June 24, 2015. https://web.archive.org/web/20150813223334/https://www.opencontainers.org/pressrelease/
Neil McAllister (July 22, 2015). "Open Container Project renames, says standard is just weeks away: Linux Foundation, Docker and friends opt for Open Container Initiative". The Register. Retrieved January 29, 2016. https://www.theregister.co.uk/2015/07/22/open_container_status_update/
"Building development images: Updating portage-stable ebuilds from Gentoo". coreos.com. Archived from the original on July 14, 2017. Retrieved May 24, 2016. https://web.archive.org/web/20170714053215/https://coreos.com/os/docs/latest/sdk-building-development-images.html#updating-portage-stable-ebuilds-from-gentoo
"Distributions based on Gentoo". gentoo.org. March 25, 2016. Retrieved May 24, 2016. https://wiki.gentoo.org/wiki/Distributions_based_on_Gentoo
Libby Clark (September 9, 2013). "Brandon Philips: How the CoreOS Linux Distro Uses Cgroups". Linux.com. Archived from the original on February 22, 2014. Retrieved February 13, 2014. https://web.archive.org/web/20140222051301/http://www.linux.com/news/featured-blogs/200-libby-clark/737364-brandon-philips-how-the-coreos-linux-distro-uses-cgroups
"CoreOS documentation: Using systemd with CoreOS". coreos.com. Archived from the original on February 14, 2014. Retrieved February 13, 2014. https://web.archive.org/web/20140214143636/https://coreos.com/using-coreos/systemd/
Libby Clark (September 9, 2013). "Brandon Philips: How the CoreOS Linux Distro Uses Cgroups". Linux.com. Archived from the original on February 22, 2014. Retrieved February 13, 2014. https://web.archive.org/web/20140222051301/http://www.linux.com/news/featured-blogs/200-libby-clark/737364-brandon-philips-how-the-coreos-linux-distro-uses-cgroups
"CoreOS documentation: Using CoreOS". coreos.com. Archived from the original on February 23, 2014. Retrieved February 13, 2014. https://web.archive.org/web/20140223040854/https://coreos.com/using-coreos/
"CoreOS documentation: Updates & patches". coreos.com. Archived from the original on February 14, 2014. Retrieved February 27, 2015. https://web.archive.org/web/20140214150559/https://coreos.com/using-coreos/updates/
Phil Whelan (August 28, 2013). "Alex Polvi Explains CoreOS". activestate.com. Archived from the original on February 24, 2015. Retrieved May 7, 2015. https://web.archive.org/web/20150224184727/http://www.activestate.com/blog/2013/08/alex-polvi-explains-coreos
"CoreOS documentation: Adding disk space to your CoreOS machine". coreos.com. Retrieved February 27, 2015. https://coreos.com/docs/cluster-management/scaling/adding-disk-space/
Alex Polvi (March 27, 2014). "Major Update: btrfs, Docker 0.9, add users, writable /etc, and more!". coreos.com. Retrieved February 27, 2015. https://coreos.com/blog/new-filesystem-btrfs-cloud-config/
"Simple Introduction to CoreOS with CEO Alex Polvi and CTO Brandon Philips". centurylinklabs.com. June 6, 2014. Archived from the original on June 22, 2015. Retrieved June 22, 2015. https://web.archive.org/web/20150622162656/http://www.centurylinklabs.com/interviews/simple-introduction-to-coreos-with-ceo-alex-polvi-and-cto-brandon-philips/
"CoreOS documentation: Update strategies". coreos.com. Retrieved April 17, 2015. https://coreos.com/docs/cluster-management/setup/update-strategies/
"coreos/locksmith: locksmith/README.md at master". github.com. February 1, 2015. Retrieved April 17, 2015. https://github.com/coreos/locksmith/blob/master/README.md
"coreos/locksmith: locksmith/LICENSE at master". github.com. January 19, 2014. Retrieved April 17, 2015. https://github.com/coreos/locksmith/blob/master/LICENSE
Timothy Prickett Morgan (February 15, 2015). "CoreOS Hyperscales Linux By Making It Invisible". nextplatform.com. Retrieved June 14, 2015. http://www.nextplatform.com/2015/02/25/coreos-hyperscales-linux-by-making-it-invisible/
"Omaha – software installer and auto-updater for Windows". code.google.com. Retrieved October 11, 2014. https://code.google.com/p/omaha/
"Omaha Overview". omaha.googlecode.com. September 23, 2009. Archived from the original on May 6, 2009. Retrieved October 11, 2014. https://web.archive.org/web/20090506062328/http://omaha.googlecode.com/svn/wiki/OmahaOverview.html
"CoreOS documentation: Updates & patches". coreos.com. Archived from the original on February 14, 2014. Retrieved February 27, 2015. https://web.archive.org/web/20140214150559/https://coreos.com/using-coreos/updates/
"Package omaha". godoc.org. June 24, 2014. Retrieved July 4, 2014. https://godoc.org/github.com/coreos/go-omaha/omaha
"CoreOS documentation: CoreUpdate". coreos.com. Retrieved July 4, 2014. https://coreos.com/products/coreupdate/
Timothy Prickett Morgan (February 15, 2015). "CoreOS Hyperscales Linux By Making It Invisible". nextplatform.com. Retrieved June 14, 2015. http://www.nextplatform.com/2015/02/25/coreos-hyperscales-linux-by-making-it-invisible/
Phil Whelan (August 28, 2013). "Alex Polvi Explains CoreOS". activestate.com. Archived from the original on February 24, 2015. Retrieved May 7, 2015. https://web.archive.org/web/20150224184727/http://www.activestate.com/blog/2013/08/alex-polvi-explains-coreos
Josh Berkus (February 4, 2015). "New etcd, appc, and Rocket releases from CoreOS". LWN.net. Retrieved June 22, 2015. https://lwn.net/Articles/631630/
Jonathan Corbet (October 22, 2014). "Etcd and fleet". LWN.net. Retrieved June 22, 2015. https://lwn.net/Articles/617452/
Libby Clark (September 9, 2013). "Brandon Philips: How the CoreOS Linux Distro Uses Cgroups". Linux.com. Archived from the original on February 22, 2014. Retrieved February 13, 2014. https://web.archive.org/web/20140222051301/http://www.linux.com/news/featured-blogs/200-libby-clark/737364-brandon-philips-how-the-coreos-linux-distro-uses-cgroups
"CoreOS documentation: Using CoreOS". coreos.com. Archived from the original on February 23, 2014. Retrieved February 13, 2014. https://web.archive.org/web/20140223040854/https://coreos.com/using-coreos/
"CoreOS documentation: Using etcd with CoreOS". coreos.com. Retrieved February 13, 2014. https://coreos.com/using-coreos/etcd/
"CoreOS documentation: Getting started with etcd". coreos.com. Retrieved February 13, 2014. https://coreos.com/docs/cluster-management/setup/getting-started-with-etcd/
Brandon Philips (January 15, 2014). "etcd @ GoSF". speakerdeck.com. Retrieved February 13, 2014. https://speakerdeck.com/philips/etcd-at-gosf
Wood, Josh. "Container orchestration: Moving from fleet to Kubernetes". coreos..com. CoreOS. https://coreos.com/blog/migrating-from-fleet-to-kubernetes.html
Jonathan Corbet (October 22, 2014). "Etcd and fleet". LWN.net. Retrieved June 22, 2015. https://lwn.net/Articles/617452/
Justin Ellingwood (September 12, 2014). "How To Use Fleet and Fleetctl to Manage your CoreOS Cluster". digitalocean.com. Retrieved June 22, 2015. https://www.digitalocean.com/community/tutorials/how-to-use-fleet-and-fleetctl-to-manage-your-coreos-cluster
"CoreOS documentation: Launching containers with fleet". coreos.com. Retrieved April 3, 2014. https://coreos.com/docs/launching-containers/launching/launching-containers-fleet/
"CoreOS documentation: Using the client". coreos.com. Retrieved April 3, 2014. https://coreos.com/docs/launching-containers/launching/fleet-using-the-client/
"coreos/fleet: fleet/README.md at master". github.com. February 18, 2014. Retrieved April 3, 2014. https://github.com/coreos/fleet/blob/master/README.md
"coreos/fleet: fleet/Documentation/deployment-and-configuration.md at master (Deploying fleet)". github.com. April 14, 2015. Retrieved April 17, 2015. https://github.com/coreos/fleet/blob/master/Documentation/deployment-and-configuration.md
"coreos/fleet: fleet/Documentation/api-v1.md (fleet API v1)". github.com. October 29, 2014. Retrieved April 17, 2015. https://github.com/coreos/fleet/blob/master/Documentation/api-v1.md
"coreos/etcd: etcd/LICENSE at master". github.com. July 31, 2013. Retrieved March 26, 2014. https://github.com/coreos/etcd/blob/master/LICENSE
"coreos/fleet: fleet/LICENSE at master". github.com. February 6, 2014. Retrieved April 3, 2014. https://github.com/coreos/fleet/blob/master/LICENSE
"CoreOS documentation: Installing CoreOS to disk". coreos.com. Retrieved February 13, 2014. https://coreos.com/docs/running-coreos/bare-metal/installing-to-disk/
"CoreOS documentation: Booting CoreOS via PXE". coreos.com. Retrieved February 13, 2014. https://coreos.com/docs/running-coreos/bare-metal/booting-with-pxe/
"CoreOS documentation: Booting CoreOS via iPXE". coreos.com. Retrieved February 13, 2014. https://coreos.com/docs/running-coreos/bare-metal/booting-with-ipxe/
"CoreOS documentation: Using CoreOS". coreos.com. Archived from the original on February 23, 2014. Retrieved February 13, 2014. https://web.archive.org/web/20140223040854/https://coreos.com/using-coreos/
Alex Crawford (September 5, 2014). "CoreOS Image Now Available On DigitalOcean". coreos.com. Retrieved September 5, 2014. https://coreos.com/blog/digital-ocean-supports-coreos/
Jack Clark (May 23, 2014). "Google brings futuristic Linux software CoreOS onto its cloud". The Register. Retrieved May 26, 2014. https://www.theregister.co.uk/2014/05/23/google_loads_coreos_onto_its_cloud/
Alex Crawford (October 20, 2014). "CoreOS Now Available On Microsoft Azure". coreos.com. Retrieved October 22, 2014. https://coreos.com/blog/coreos-available-on-azure/
Josh Berkus (May 13, 2015). "CoreOS Fest and the world of containers, part 1". LWN.net. Retrieved June 22, 2015. https://lwn.net/Articles/644089/
Steven J. Vaughan-Nichols (April 6, 2015). "CoreOS is bringing Google's Kubernetes to the enterprise". ZDNet. Retrieved April 29, 2015. https://www.zdnet.com/article/coreos-is-bringing-googles-kubernetes-to-the-enterprise/
Ben Kepes (April 6, 2015). "CoreOS And Google Make Their Defensive Plays, Is Docker The Victim?". Forbes. Retrieved April 29, 2015. https://www.forbes.com/sites/benkepes/2015/04/06/coreos-and-google-make-their-defensive-plays-is-docker-the-victim/
Josh Berkus (May 13, 2015). "CoreOS Fest and the world of containers, part 1". LWN.net. Retrieved June 22, 2015. https://lwn.net/Articles/644089/
Eugene Yakubovich (August 28, 2014). "Introducing flannel: An etcd-backed overlay network for containers". coreos.com. Retrieved June 22, 2015. https://coreos.com/blog/introducing-rudder/
"Tutorial on using CoreOS Flannel for Docker". slideshare.net. November 2014. Retrieved June 22, 2015. https://www.slideshare.net/lorispack/using-coreos-flannel-for-docker-networking
Timothy Prickett Morgan (February 15, 2015). "CoreOS Hyperscales Linux By Making It Invisible". nextplatform.com. Retrieved June 14, 2015. http://www.nextplatform.com/2015/02/25/coreos-hyperscales-linux-by-making-it-invisible/
Rosoff, Matt (January 30, 2018). "Red Hat pays $250 million for CoreOS, a start-up that sells Google-developed technology". CNBC. Retrieved June 6, 2019. https://www.cnbc.com/2018/01/30/red-hat-buys-coreos-for-250-mililon.html
"Fedora CoreOS, Red Hat CoreOS, and the future of Container Linux | CoreOS". coreos.com. Retrieved June 6, 2019. https://coreos.com/blog/fedora-coreos-red-hat-coreos-and-future-container-linux
"Announcing the Flatcar Linux project | Kinvolk". kinvolk.io. March 6, 2018. Retrieved June 6, 2019. https://kinvolk.io/blog/2018/03/announcing-the-flatcar-linux-project/
"Introducing the Flatcar Linux Edge Channel | Kinvolk". kinvolk.io. May 15, 2019. Retrieved June 6, 2019. https://kinvolk.io/blog/2019/05/introducing-the-flatcar-linux-edge-channel/
CoreOS: A different kind of Linux distribution [LWN.net] http://lwn.net/Articles/593928/