Introducing docker-latest for RHEL 7 and RHEL Atomic Host

Updated -

IMPORTANT: As of Red Hat Enterprise Linux 7.5, the docker-latest package (described in this article) is deprecated. Although the package will remain available for the foreseeable future, it will not be updated going forward and will not be used for its original purpose of providing later versions of Docker software than what is included in the docker package. This article is being maintained for historical purposes.

Overview

Beginning with RHEL Atomic Host 7.2.4 release, two versions of the docker service are included in the operating system: docker and docker-latest. Although docker and docker-latest packages are not included in the default installation of standard RHEL, they are available from the rhel-7-server-extras-rpms repository. For every version of RHEL and RHEL Atomic Host, the same versions of docker are available. This applies to docker-latest too. 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 included, but is disabled by default in RHEL Atomic Host. docker-latest is available for the customers who want to try out a later version of Docker. It is provided by the docker-latest RPM package. Only use docker-latest if you want to try it out as a standalone service, because it is not compatible with other container tools available with Atomic Host and RHEL Server, unless docker and docker-latest are the same version.

Bug fixes and features are backported from the upstream Docker project for every version of both docker and docker-latest:

Version Matrix

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

RHEL Atomic Host / RHEL Server 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
7.4.1 1.12.6-55.gitc4618fb.el7 1.13.1-23.git28ae36d.el7
7.4.2 1.12.6-61.git85d7426.el7 1.13.1-26.git1faa135.el7
7.4.3 1.12.6-68.gitec8512b.el7 1.13.1-36.git9a813fa.el7
7.4.4 1.12.6-71.git3e8e77d.el7 1.13.1-37.git9a813fa.el7
7.4.5 1.13.1-53.git774336d.el7 1.13.1-53.git774336d.el7
7.5.0 1.13.1-58.git87f2fab.el7 docker-latest deprecated
7.5.1 docker-latest deprecated

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

Table of Contents

No

12 Comments

Is there any effort to provide an even more current version of Docker like edge?

Indeed, is there a schedule for when we can expect these updates?

Any ETA on a newer docker version

Hello, sorry for the delay on this. I've asked the development team, but they seem to not be decided yet. Dan Walsh says an even newer version of docker will eventually be supported, others say it won't. If it gets any clearer, I'll let you know.

So it appears as though you folks are now back porting features and fixes into your releases. This is making it pretty confusing to figure out what exactly is supported, is there some place I am missing for announcements of what is going into the docker versions that RH is releasing?

Erinn, sorry for the delay. I've updated the article with information about backported changes - see the end of Overview. Does this answer your question?

Sort of, I mean realistically Red Hat is creating a real mess with this, if Red Hat doesn't provide complete documentation of their fork of Docker it becomes very difficult to figure out exactly what you can and cannot do with RH docker. Docker INC's documentation isn't correct for RH docker and RH doesn't provide (many) docs for their fork. Just needs to be done better.

Hello, Clicking on the ChangeLog link takes you to https://github.com/moby/moby/releases/tag/v1.12.6 However , I don't see a details for each 1.12.6-xx release.

Same question as before ... any ETA for a newer docker version.

docker-latest with 1.13 version is not downloadable for some reason. using yum, it always give 1.12 verision only.

Not sure why that is. I get this: $ rpm -q docker-latest docker-latest-1.13.1-56.git774336d.el7.x86_64 Is it possible that your subscription has expired or that your system doesn't have the latest yum metadata? You could try "yum repolist" to make sure you have the RHEL server, extras, and optional repos available with the latest metadata downloaded.

Hi Ryan, please try whether running sudo yum clean all | sudo rm -r /var/cache/yum | sudo yum update can solve this.
If not, you can download docker-latest from the Red Hat Packages Browser and install it manually. Although this will not solve the general problem you may have with the setup of your RHEL system and the repositories. :)

Regards,
Christain

One other thought: If you are using RHEL Atomic Host, type this to get the current docker-latest: "atomic host upgrade" and reboot.