Get Docker EE for CentOS

Estimated reading time: 8 minutes

There are two ways to install and upgrade Docker Enterprise Edition (Docker EE) on Centos:

  • YUM repository: Set up a Docker repository and install Docker EE from it. This is the recommended approach because installation and upgrades are managed with YUM and easier to do.

  • RPM package: Download the RPM package, install it manually, and manage upgrades manually. This is useful when installing Docker EE on air-gapped systems with no access to the internet.

For Docker Community Edition on CentOS, see Get Docker CE for CentOS.

Prerequisites

This section lists what you need to consider before installing Docker EE. Items that require action are explained below.

  • Use CentOS 64-bit 7.1 and higher on x86_64.
  • Use storage driver overlay2 or devicemapper (direct-lvm mode in production).
  • Find the URL for your Docker EE repo at Docker Store.
  • Uninstall old versions of Docker.
  • Remove old Docker repos from /etc/yum.repos.d/.

Architectures and storage drivers

Docker EE supports Centos 64-bit, versions 7.1 and higher (7.1, 7.2, 7.3, 7.4), running on x86_64.

On Centos, Docker EE supports storage drivers, overlay2 and devicemapper. In Docker EE 17.06.2-ee-5 and higher, overlay2 is the recommended storage driver. The following limitations apply:

  • OverlayFS: If selinux is enabled, the overlay2 storage driver is supported on CentOS 7.4 or higher. If selinux is disabled, overlay2 is supported on CentOS 7.2 or higher with kernel version 3.10.0-693 and higher.

  • Device Mapper: On production systems using devicemapper, you must use direct-lvm mode, which requires one or more dedicated block devices. Fast storage such as solid-state media (SSD) is recommended. Do not start Docker until properly configured per the storage guide.

Find your Docker EE repo URL

To install Docker EE, you will need the URL of the Docker EE repository associated with your trial or subscription:

  1. Go to https://store.docker.com/my-content. All of your subscriptions and trials are listed.
  2. Click the Setup button for Docker Enterprise Edition for Centos.
  3. Copy the URL from Copy and paste this URL to download your Edition and save it for later use.

You will use this URL in a later step to create a variable called, DOCKERURL.

Uninstall old Docker versions

The Docker EE package is called docker-ee. Older versions were called docker or docker-engine. Uninstall all older versions and associated dependencies. The contents of /var/lib/docker/ are preserved, including images, containers, volumes, and networks. If you are upgrading from Docker CE to Docker EE, remove the Docker CE package as well.

$ sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine \
                  docker-ce

Repo install and upgrade

The advantage of using a repository from which to install Docker EE (or any software) is that it provides a certain level of automation. RPM-based distributions such as Centos, use a tool called YUM that work with your repositories to manage dependencies and provide automatic updates.

Set up the repository

You only need to set up the repository once, after which you can install Docker EE from the repo and repeatedly upgrade as necessary.

  1. Remove existing Docker repositories from /etc/yum.repos.d/:

    $ sudo rm /etc/yum.repos.d/docker*.repo
    
  2. Temporarily store the URL (that you copied above) in an environment variable. Replace <DOCKER-EE-URL> with your URL in the following command. This variable assignment does not persist when the session ends.

    $ export DOCKERURL="<DOCKER-EE-URL>"
    
  3. Store the value of the variable, DOCKERURL (from the previous step), in a yum variable in /etc/yum/vars/:

    $ sudo -E sh -c 'echo "$DOCKERURL/centos" > /etc/yum/vars/dockerurl'
    
  4. Install required packages: yum-utils provides the yum-config-manager utility, and device-mapper-persistent-data and lvm2 are required by the devicemapper storage driver:

    $ sudo yum install -y yum-utils \
      device-mapper-persistent-data \
      lvm2
    
  5. Add the Docker EE stable repository:

    $ sudo -E yum-config-manager \
        --add-repo \
        "$DOCKERURL/centos/docker-ee.repo"
    

Install from the repository

  1. Install the latest version of Docker EE, or go to the next step to install a specific version:

    $ sudo yum -y install docker-ee
    

    If prompted to accept the GPG key, verify that the fingerprint matches 77FE DA13 1A83 1D29 A418 D3E8 99E5 FF2E 7668 2BC9, and if so, accept it.

  2. To install a specific version of Docker EE (recommended in production), list versions and install:

    a. List and sort the versions available in your repo. This example sorts results by version number, highest to lowest, and is truncated:

    $ sudo yum list docker-ee  --showduplicates | sort -r
    
    docker-ee.x86_64      17.06.ee.2-1.el7.centos      docker-ee-stable-17.06
    

    The list returned depends on which repositories you enabled, and is specific to your version of Centos (indicated by .el7 in this example).

    b. Install a specific version by its fully qualified package name which is the package name (docker-ee) plus the version string (2nd column) up to the hyphen, for example: docker-ee-17.06.1.ee.2

    $ sudo yum -y install <FULLY-QUALIFIED-PACKAGE-NAME>
    

    Docker is installed but not started. The docker group is created, but no users are added to the group.

  3. Start Docker:

    If using devicemapper, ensure it is properly configured before starting Docker, per the storage guide.

    $ sudo systemctl start docker
    
  4. Verify that Docker EE is installed correctly by running the hello-world image. This command downloads a test image, runs it in a container, prints an informational message, and exits:

    $ sudo docker run hello-world
    

    Docker EE is installed and running. Use sudo to run Docker commands. See Linux postinstall to allow non-privileged users to run Docker commands.

Upgrade from the repository

  1. Add the new repository.

  2. Follow the installation instructions and install a new version.

Package install and upgrade

To manually install Docker EE, download the .rpm file for your release. You need to download a new file each time you want to upgrade Docker EE.

Install with a package

  1. Go to the Docker EE repository URL associated with your trial or subscription in your browser. Go to centos/7/x86_64/stable-17.06/Packages and download the .rpm file for the Docker version you want to install.

  2. Install Docker EE, changing the path below to the path where you downloaded the Docker package.

    $ sudo yum install /path/to/package.rpm
    

    Docker is installed but not started. The docker group is created, but no users are added to the group.

  3. Start Docker:

    If using devicemapper, ensure it is properly configured before starting Docker, per the storage guide.

    $ sudo systemctl start docker
    
  4. Verify that Docker EE is installed correctly by running the hello-world image. This command downloads a test image, runs it in a container, prints an informational message, and exits:

    $ sudo docker run hello-world
    

    Docker EE is installed and running. Use sudo to run Docker commands. See Linux postinstall to allow non-privileged users to run Docker commands.

Upgrade with a package

  1. Download the newer package file.

  2. Repeat the installation procedure, using yum -y upgrade instead of yum -y install, and point to the new file.

Uninstall Docker EE

  1. Uninstall the Docker EE package:

    $ sudo yum -y remove docker-ee
    
  2. Delete all images, containers, and volumes (because these are not automatically removed from your host):

    $ sudo rm -rf /var/lib/docker
    
  3. If desired, remove the devicemapper thin pool and reformat the block devices that were part of it.

You must delete any edited configuration files manually.

Next steps

requirements, apt, installation, centos, rpm, install, uninstall, upgrade, update