docs/_includes/ee-linux-install-reuse.md

11 KiB

{% assign section = include.section %}

{% comment %}

Include a chunk of this file, using variables already set in the file where you want to reuse the chunk.

Usage: {% include ee-linux-install-reuse.md section="ee-install-intro" %}

{% endcomment %}

{% if section == "ee-install-intro" %}

There are two ways to install and upgrade Docker Enterprise Edition (Docker EE){: target="blank" class="" } on {{ linux-dist-long }}:

  • 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 {{ package-format }} 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.

{% if linux-dist == "rhel" or linux-dist == "oraclelinux" %} Docker Community Edition (Docker CE) is not supported on {{ linux-dist-long }}. {% endif %} {% if linux-dist == "centos" %} For Docker Community Edition on {{ linux-dist-cap }}, see Get Docker CE for CentOS. {% endif %}

{% elsif section == "find-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{: target="blank" class="" }. All of your subscriptions and trials are listed.
  2. Click the Setup button for Docker Enterprise Edition for {{ linux-dist-long }}.
  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.

{% elsif section == "using-yum-repo" %}

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 {{ linux-dist-long }}, use a tool called YUM that work with your repositories to manage dependencies and provide automatic updates.

{% elsif section == "set-up-yum-repo" %} 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/{{ linux-dist-url-slug }}" > /etc/yum/vars/dockerurl'
    

    {% if linux-dist == "rhel" %} Also, store your OS version string in /etc/yum/vars/dockerosversion. Most users should use 7, but you can also use the more specific minor version, starting from 7.2.

    $ sudo sh -c 'echo "7" > /etc/yum/vars/dockerosversion'
    

    {% endif %}

  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
    

{% if linux-dist == "rhel" %} 5. Enable the extras RHEL repository. This ensures access to the container-selinux package required by docker-ee.

The repository can differ per your architecture and cloud provider, so review the options in this step before running:

**For all architectures _except_ IBM Power:**

```bash
$ sudo yum-config-manager --enable rhel-7-server-extras-rpms
```

**For IBM Power only (little endian):**

```bash
$ sudo yum-config-manager --enable extras
$ sudo subscription-manager repos --enable=rhel-7-for-power-le-extras-rpms
$ sudo yum makecache fast
$ sudo yum -y install container-selinux
```

Depending on cloud provider, you may also need to enable another repository:

**For AWS** (where `REGION` is a literal, and does _not_ represent the region your machine is running in):

```bash
$ sudo yum-config-manager --enable rhui-REGION-rhel-server-extras
```

**For Azure:**

```bash
$ sudo yum-config-manager --enable rhui-rhel-7-server-rhui-extras-rpms
```

{% endif %}

{% if linux-dist == "oraclelinux" %}

  1. Enable the ol7_addons Oracle repository. This ensures access to the container-selinux package required by docker-ee.

    $ sudo yum-config-manager --enable ol7_addons
    

{% endif %}

  1. Add the Docker EE stable repository:

    $ sudo -E yum-config-manager \
        --add-repo \
        "$DOCKERURL/{{ linux-dist-url-slug }}/docker-ee.repo"
    

{% elsif section == "install-using-yum-repo" %}

There are currently two versions of Docker EE Engine available:

  • 18.03 - Use this version if you're only running Docker EE Engine.
  • 17.06 - Use this version if you're using Docker Enterprise Edition 2.0 (Docker Engine, UCP, and DTR).
  1. By default, Docker EE Engine 17.06 is installed. If you want to install the 18.03 version run:

    sudo yum-config-manager --enable docker-ee-stable-18.03
    
  2. Install the latest patch release, 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 {{ gpg-fingerprint }}, and if so, accept it.

  3. 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      {{ site.docker_ee_version }}.ee.2-1.el7.{{ linux-dist }}      docker-ee-stable-17.06
    

    The list returned depends on which repositories you enabled, and is specific to your version of {{ linux-dist-long }} (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.

  4. Start Docker:

    If using devicemapper, ensure it is properly configured before starting Docker, per the storage guide{: target="blank" class="" }.

    $ sudo systemctl start docker
    
  5. 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{: target="blank" class="" } to allow non-privileged users to run Docker commands.

{% elsif section == "upgrade-using-yum-repo" %}

  1. Add the new repository.

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

{% elsif section == "package-installation" %}

To manually install Docker EE, download the .{{ package-format | downcase }} file for your release. You need to download a new file each time you want to upgrade Docker EE.

{% elsif section == "install-using-yum-package" %}

{% if linux-dist == "rhel" %}

  1. Enable the extras RHEL repository. This ensures access to the container-selinux package which is required by docker-ee:

    $ sudo yum-config-manager --enable rhel-7-server-extras-rpms
    

    Alternately, obtain that package manually from Red Hat. There is no way to publicly browse this repository. {% endif %}

{% if linux-dist == "centos" %}

  1. Go to the Docker EE repository URL associated with your trial or subscription in your browser. Go to {{ linux-dist-url-slug }}/7/x86_64/stable-<VERSION>/Packages and download the .{{ package-format | downcase }} file for the Docker version you want to install. {% endif %}

{% if linux-dist == "rhel" or linux-dist == "oraclelinux" %}

  1. Go to the Docker EE repository URL associated with your trial or subscription in your browser. Go to {{ linux-dist-url-slug }}/. Choose your {{ linux-dist-long }} version, architecture, and Docker version. Download the .{{ package-format | downcase }} file from the Packages directory.

{% if linux-dist == "rhel" %} > If you have trouble with selinux using the packages under the 7 directory, > try choosing the version-specific directory instead, such as 7.3. {% endif %} {% endif %}

  1. 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.

  2. Start Docker:

    If using devicemapper, ensure it is properly configured before starting Docker, per the storage guide{: target="blank" class="" }.

    $ sudo systemctl start docker
    
  3. 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{: target="blank" class="" } to allow non-privileged users to run Docker commands.

{% elsif section == "upgrade-using-yum-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.

{% elsif section == "yum-uninstall" %}

  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. Delete other Docker related resources:

    $ sudo rm -rf /run/docker
    $ sudo rm -rf /var/run/docker
    $ sudo rm -rf /etc/docker
    
  4. 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.

{% elsif section == "linux-install-nextsteps" %}

{% endif %}