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.
Why Atomic?
- 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 var
and 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.
Further Reading:
- http://thenewstack.io/project-atomic-creates-infrastructure-for-linux-containers
- http://developerblog.redhat.com/2015/04/21/introducing-the-atomic-command
- http://www.projectatomic.io/docs
Very good tutorial article about Atomic. I like it.
LikeLiked by 1 person