Introducing docker-latest for RHEL 7 and RHEL Atomic Host
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
:
- https://github.com/projectatomic/docker/commits/docker-1.12.6 - changes backported to
docker
- https://github.com/projectatomic/docker/commits/docker-1.13.1-rhel - changes backported to
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 docker
and 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.servicedocker-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/dockerdocker-latest
: /usr/bin/docker-latest
Directory for storing images, containers and meta data:
docker
: /var/lib/dockerdocker-latest
: /var/lib/docker-latest
Add options to the Docker service:
docker
: /etc/sysconfig/dockerdocker-latest
: /etc/sysconfig/docker-latest
Add networking options to Docker service:
docker
: /etc/sysconfig/docker-networkdocker-latest
: /etc/sysconfig/docker-latest-network
Add storage options to Docker service:
docker
: /etc/sysconfig/docker-storagedocker-latest
: /etc/sysconfig/docker-latest-storage
Override default storage setup for Docker:
docker
: /etc/sysconfig/docker-storage-setupdocker-latest
: /etc/sysconfig/docker-latest-storage-setup
Default storage setup:
docker
: /usr/lib/docker-storage-setup/docker-storage-setupdocker-latest
: /usr/lib/docker-latest-storage-setup/docker-latest-storage-setup
Comments