Project Atomic is a framework to create OS from RHEL, CentOS, Fedora and the aim of Project Atomic is to create better OS for containers.
- For running containers we don’t need full fledged distribution.
- Less number of packages to maintain
rpm-ostree is a software management tool that combines the features of both traditional RPMs and OSTree. we can be way more confident on updating system if we know that we can have reliable rollback even after updating system. It provides clear transaction for updates. Since the whole process is atomic there is almost no chance o half way update of the system hence less chance of breaking system.
The atomic command defines the entrypoint for Project Atomic hosts.
On Atomic hosts there are two software delivery vehicles:
- rpm-ostree for managing deployment and updates of host system.
- Docker to provide containers running services and applications.
RPM-OSTree makes the file-system immutable i.e, read only except
etc. Docker uses
/var/lib/docker where all the docker related files, images are stored.
/etc has all the configuration files.
Atomic Command: Let’s get Started!
We will first need to have an atomic host running.
- atomic host upgrade will upgrade to a newer version.
- atomic host rollback will rollback to the previous version.
- atomic host status displays the status of the atomic host installed.
- atomic run <name> allows an image provider how a container image expects to be run.
- atomic install <name> installs a container on atomic host with systemd unit file to run it as service.
- atomic uninstall <name> uninstalls the container from atomic host.
- atomic info <name> displays LABEL information of the image.
- atomic images lists the container images on your Atomic host.
When we ship an application you need to run an install script. Using Atomic tool management system we can embed install and uninstall script within our application itself. In the Dockerfile of our application we need to have
LABEL INSTALL that points to the docker command for the application with executable install script. When we execute
atomic install it will specifically run
LABEL INSTALL command from the Dockerfile to install the application on atomic host.
Same way to uninstall an application we need to run
atomic uninstall that will specifically run
LABEL UNINSTALL from Dockerfile which specifically points to the uninstall script for the application.
For further reading regarding Install and Uninstall: http://www.projectatomic.io/docs/usr-bin-atomic
Atomic Command Cheat Sheet is now available.