Recent Updates to the Atomic CLI

Back in April, we provided an in-depth look into atomic updating bash-161382_640and announced the first of many atomic updates. Since then, Red Hat Enterprise Linux Atomic Host has continued to evolve, along with the asynchronous kernel errata. What’s changed in the last few months? Let’s take a look.

We first introduced the atomic command-line interface with Red Hat Enterprise Linux Atomic Host 7.1.2:

  • atomic run —  allows a container to specify its run-time options via the RUN meta-data label. This is used primarily with privileges.
  • atomic install and atomic uninstall — allow a container to specify install and uninstall scripts via the INSTALL and UNINSTALL meta-data labels.
  • atomic supports container upgrade and checking for updated images.

With Red Hat Enterprise Linux Atomic Host 7.1.3, we took the the atomic command a step further:

  • atomic upload — allows the user to upload a container image to a docker repository or to a Pulp/Crane instance.
  • atomic version — displays the “Name Version Release” container label in the following format: ContainerID;Name-Version-Release;Image/Tag
  • atomic verify — inspects an image to verify that the image layers are based on the latest image layers available. For example, if you have a MongoDB application based on rhel7-1.1.2 and a rhel7-1.1.3 base image is available, the command will inform you there is a later image.

Now with Red Hat Enterprise Linux Atomic Host 7.1.4, you can use the atomic command to pass three options (OPT1, OPT2, OPT3) to the LABEL command in a Dockerfile. Developers can add environment variables to the labels to allow users to pass additional commands using atomic.

The following is an example from a Dockerfile:

LABEL docker run ${OPT1}${IMAGE}

This line means that running the following command:

atomic run --opt1="-ti" image_name

is identical to running

docker run -ti image_name
  • You can now use ${NAME} and ${IMAGE} anywhere in your label, and atomic will substitute it with an image and a name.
  • The ${SUDO_UID} and ${SUDO_GID} options are set and can be used in image LABEL.
  • The atomic mount command attempts to mount the file system belonging to a given container/image ID or image to the given directory. Optionally, you can provide a registry and tag to use a specific version of an image.

Other updates:

  • The iscsi-initiator-utils package was also added to Red Hat Enterprise Linux Atomic Host with 7.1. This allows the system to mount iSCSI volumes; Kubernetes gained a storage plugin to set up iSCSI mounts for containers.
  • In 7.1.3, we enhanced rpm-OSTree to provide a unique machine ID for each machine provisioned. We added support for remote-specific GPG keyring, specifically to associate a particular GPG key with a particular OSTree remote. And, a dbus interface was added to verify and version commands.
  • With 7.1.4 –
    • The iptables-service package has been added.
    • It is now possible to enable automatic “command forwarding” when commands that are not found on Red Hat Enterprise Linux Atomic Host, are seamlessly retried inside the RHEL Atomic Tools container. The feature is disabled by default (it requires a RHEL Atomic Tools pulled on the system). To enable it, uncomment the export line in the /etc/sysconfig/atomic file so it looks like this:

      export TOOLSIMG=rhel7/rhel-tools
      

For more information on what’s been added to Red Hat Enterprise Linux Atomic Host, view the release notes and other documentation on the Red Hat Customer Portal.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s