Introducing docker-latest for RHEL 7 and RHEL Atomic Host

Updated -

Overview

Beginning with RHEL Atomic Host 7.2.4 release, two versions of the docker service will be included in the operating system: docker and docker-latest . Here are things you need to know about using these two versions of docker:

docker: docker is the default docker service that is enabled and ready to run. The service and related features are provided by the docker RPM package.

docker-latest: docker-latest is also available, but is disabled by default in RHEL Atomic Host. docker-latest is available for customers who want to try out a later version of Docker. It is provided by the docker-latest RPM package. Only use docker-latestif you want to try it out as a standalone service, as it is not compatible with other container tools available with Atomic Host (unless docker and docker-latest are the same version).

Version Matrix

The following table describes the versions of docker and docker-latest included in each RHEL Atomic Host (from 7.2.4 and later):

RHEL Atomic Host Version docker version docker-latest version
7.2.4 1.9.1-40.el7 1.10.3-22.el7
7.2.5 1.10.3-44.el7 1.10.3-44.el7
7.2.6 1.10.3-46.el7.10 1.10.3-46.el7.10
7.2.7 1.10.3-46.el7 1.12.1-2.el7
7.3.1 1.10.3-59.el7 1.12.3-10.el7
7.3.2 1.12.5-14.el7 1.12.5-14.el7
7.3.3 1.12.6-2.el7 1.12.6-2.el7
7.3.4 1.12.6-16.el7 1.13.1-4.el7
7.3.5 1.12.6-28.git1398f24.el7 1.13.1-11.git3a17ad5.el7
7.3.6 1.12.6-32.git88a4867.el7 1.13.1-13.gitb303bf6.el7
7.4.0 1.12.6-48.git0fdc778.el7 1.13.1-21.1.gitcd75c68.el7

Caveats

OpenShift compatibility: For information regarding compatible OpenShift component versions, please see this article.

Upgrading the docker service to docker-latest: When docker-latest offers a newer version of the Docker service, the two versions store data in different directories, use different service names and different docker executables. Because the two versions are set up separately, there are no issues related to older container images not running in the new version. To upgrade to docker-latest, you need to shut down the docker service and start the docker-latest service (as described below). This essentially starts you with a clean slate, so you have to re-pull any containers you want to run with the fresh docker-latest service.

One Docker at a time: Because both Docker services share the /run/docker directory, you cannot run both dockerand docker-latest at the same time on the same system. For more information on new features, refer to the Docker v1.12.6 Changelog (for Docker 1.12.6).

Switching between docker and docker-latest

Service

The docker service should already be enabled and running on your Atomic Host system when it boots up. To change the Docker service to docker-latest, you should do the following:

# systemctl stop docker
# systemctl disable docker
# systemctl enable docker-latest
# systemctl start docker-latest

Client

Likewise, the docker client command is set to docker by default. To change the docker client to docker-latest, add the following line to the end of the /etc/sysconfig/docker file:

DOCKERBINARY=/usr/bin/docker-latest

To change the docker client back to docker, either comment out the DOCKERBINARY line or set DOCKERBINARY=/usr/bin/docker-current.

Configuration files and file system layout for docker and docker-latest

The two Docker services use different configuration files and store data in different directories. For example, to add options to the docker daemon, edit /etc/sysconfig/docker for docker or /etc/sysconfig/docker-latest for docker-latest. Docker data are stored in /var/lib/docker for docker and /var/lib/docker-latest for docker-latest. See the upcoming list of configuration files, storage files, and service files to see how those files differ for these two packages.

Here is a list of useful files and directories for Docker and how the differ for docker and docker-latest:

Systemd service name for starting the service:

  • docker: docker.service
  • docker-latest: docker-latest.service

The command you use to run, start, stop, view images, view running containers, and otherwise manage Docker-formatted images:

  • docker: /usr/bin/docker
  • docker-latest: /usr/bin/docker-latest

Directory for storing images, containers and meta data:

  • docker: /var/lib/docker
  • docker-latest: /var/lib/docker-latest

Add options to the Docker service:

  • docker: /etc/sysconfig/docker
  • docker-latest: /etc/sysconfig/docker-latest

Add networking options to Docker service:

  • docker: /etc/sysconfig/docker-network
  • docker-latest: /etc/sysconfig/docker-latest-network

Add storage options to Docker service:

  • docker: /etc/sysconfig/docker-storage
  • docker-latest: /etc/sysconfig/docker-latest-storage

Override default storage setup for Docker:

  • docker: /etc/sysconfig/docker-storage-setup
  • docker-latest: /etc/sysconfig/docker-latest-storage-setup

Default storage setup:

  • docker: /usr/lib/docker-storage-setup/docker-storage-setup
  • docker-latest: /usr/lib/docker-latest-storage-setup/docker-latest-storage-setup

Was this helpful?

We appreciate your feedback. Leave a comment if you would like to provide more detail.
It looks like we have some work to do. Leave a comment to let us know how we could improve.