获取Docker Engine-适用于Red Hat Enterprise Linux的企业版

预计阅读时间: 16分钟

有两种方法可以在Red Hat Enterprise Linux上安装和升级Docker Enterprise

  • YUM存储库 :建立Docker存储库并从中安装Docker Engine-Enterprise。这是推荐的方法,因为安装和升级是使用YUM进行管理的,并且更容易实现。

  • RPM软件包 :下载RPM软件包,手动安装,并手动管理升级。在无法访问互联网的气密系统上安装Docker Engine-Enterprise时,此功能很有用。

Docker Engine-红帽企业版Linux 支持社区。

先决条件

本节列出了在安装Docker Engine-Enterprise之前需要考虑的事项。下面说明需要采取措施的项目。

  • x86_64上使用RHEL 64位7.4和更高版本。
  • 使用存储驱动程序overlay2devicemapper (生产中的direct-lvm模式)。
  • Docker Hub上找到您的Docker Engine-Enterprise存储库的URL。
  • 卸载旧版本的Docker。
  • /etc/yum.repos.d/删除旧的Docker存储库。

注意:仅Docker Engine-Enterprise 17.06.xx支持IBM Z( s390x )。如果要在IBM Z系统上安装Docker,请在安装/升级之前禁用SELinux,并确保要安装Docker Engine-Enterprise17.06.xx。

架构和存储驱动程序

Docker Engine-Enterprise支持在x86_64运行的Red Hat Enterprise Linux 64位,版本7.4及更高版本。有关详细信息,请参见兼容性列表

在Red Hat Enterprise Linux上,Docker Engine-Enterprise支持存储驱动程序, overlay2devicemapper 。在Docker Engine-Enterprise 17.06.2-ee-5及更高版本中,建议使用overlay2存储驱动程序。适用以下限制:

  • OverlayFS :如果启用了selinux ,则RHEL 7.4或更高版本支持overlay2存储驱动程序。如果禁用了selinux ,则RHEL 7.2或更高版本以及内核版本3.10.0-693和更高版本均支持overlay2

  • 设备映射器 :在使用devicemapper生产系统上,必须使用direct-lvm模式,该模式需要一个或多个专用块设备。建议使用快速存储,例如固态媒体(SSD)。在按照存储指南正确配置之前,请勿启动Docker。

FIPS 140-2加密模块支持

联邦信息处理标准(FIPS)出版物140-2是美国联邦对加密模块的安全要求。

有了Docker Engine-Enterprise Basic许可证(版本18.03及更高版本),Docker在RHEL 7.3、7.4和7.5中提供了FIPS 140-2支持。这包括FIPS支持的加密模块。如果RHEL实施已启用了FIPS支持,则还将在Docker引擎中自动启用FIPS。如果您的RHEL实施中尚未启用FIPS支持,请访问Red Hat产品文档以获取有关如何启用它的说明。

要验证Linux内核中是否启用了FIPS-140-2模块,请确认文件/proc/sys/crypto/fips_enabled包含1

$ cat /proc/sys/crypto/fips_enabled
1

注意: FIPS仅在Docker Engine Engine-Enterprise中受支持。UCP和DTR当前不支持FIPS-140-2。

您可以在非FIPS 140-2模式下的系统上覆盖FIPS 140-2符合性。请注意,这不会更改系统上的FIPS 140-2模式。要覆盖FIPS 140-2模式,请执行以下步骤。

创建一个名为/etc/systemd/system/docker.service.d/fips-module.conf 。添加以下内容:

[Service]
Environment="DOCKER_FIPS=1"

将Docker配置重新加载到systemd。

$ sudo systemctl守护进程重新加载

以root身份重新启动Docker服务。

$ sudo systemctl重新启动docker

要确认Docker在启用FIPS-140-2的情况下运行,请运行docker info命令。

docker info --format {{.SecurityOptions}}
[name=selinux name=fips]

禁用FIPS-140-2

如果系统在操作系统上安装了FIPS 140-2加密模块,则可以禁用FIPS-140-2合规性。

要在Docker中禁用FIPS 140-2,但在操作系统中禁用,请在/etc/systemd/system/docker.service.d/fips-module.conf设置值DOCKER_FIPS=0

将Docker配置重新加载到systemd。

$ sudo systemctl守护进程重新加载

以root身份重新启动Docker服务。

$ sudo systemctl重新启动docker

查找您的Docker引擎-企业仓库URL

要安装Docker Enterprise,您将需要与您的试用版或订阅相关联的Docker Enterprise存储库的URL:

  1. 转到https://hub.docker.com/my-content 。列出了您的所有订阅和试用版。
  2. 单击适用于Red Hat Enterprise Linux的Docker企业版设置按钮。
  3. 复制中复制URL, 然后粘贴此URL以下载您的版本并保存以供以后使用。

您将在以后的步骤中使用此URL创建一个名为DOCKERURL的变量。

卸载旧的Docker版本

Docker Engine-Enterprise软件包称为docker-ee 。较旧的版本称为dockerdocker-engine 。卸载所有旧版本和关联的依赖项。/var/lib/docker/被保留,包括映像,容器,卷和网络。

$ 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 Engine-Enterprise(或任何软件)的存储库的优点是它提供了一定程度的自动化。基于RPM的发行版(例如Red Hat Enterprise Linux)使用称为YUM的工具,该工具与您的存储库一起使用来管理依赖关系并提供自动更新。

在IBM Z系统上安装Docker Engine-Enterprise 17.06.xx之前禁用SELinux

当前在IBM Z系统上不支持selinux 。如果尝试在启用了selinux的IBM Z系统上安装或升级Docker Engine-Enterprise,则会引发错误,即找不到container-selinux软件包。禁用selinux安装或在IBM Z. IBMž系统升级之前泊坞窗上支持泊坞窗引擎-企业版仅17.06.xx。

设置存储库

您只需要设置一次存储库,然后即可从存储库中安装Docker Engine-Enterprise 并根据需要重复升级。

  1. /etc/yum.repos.d/删除现有的Docker存储库:

    $ sudo rm /etc/yum.repos.d/docker*.repo
    
  2. 将URL(您在上面复制的 )临时存储在环境变量中。在以下命令中,用您的URL替换<DOCKER-EE-URL> 。会话结束时,此变量分配不会持久:

    $ export DOCKERURL="<DOCKER-EE-URL>"
    
  3. 将变量DOCKERURL的值(来自上一步)存储在/etc/yum/vars/中的yum变量中:

    $ sudo -E sh -c 'echo "$DOCKERURL/rhel" > /etc/yum/vars/dockerurl'
    

    另外,将您的操作系统版本字符串存储在/etc/yum/vars/dockerosversion 。大多数用户应使用78 ,但也可以使用从7.2开始的更具体的次要版本。

    $ sudo sh -c 'echo "7" > /etc/yum/vars/dockerosversion'
    
  4. 安装所需的软件包: yum-utils提供yum-config-manager实用程序,并且devicemapper存储驱动程序需要device-mapper-persistent-datalvm2

    $ sudo yum install -y yum-utils \
      device-mapper-persistent-data \
      lvm2
    
  5. 启用extras RHEL存储库。这样可以确保访问docker-ee所需的container-selinux软件包。

    该存储库可能会因您的体系结构和云提供商而有所不同,因此在运行之前,请查看此步骤中的选项:

    对于 IBM Power 以外的所有体系结构:

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

    仅对于IBM Power(小端):

    $ 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
    

    根据云提供商的不同,您可能还需要启用另一个存储库:

    对于AWS(其中REGION是一个文字, 并不代表你的机器在运行区域):

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

    对于Azure:

    $ sudo yum-config-manager --enable rhui-rhel-7-server-rhui-extras-rpms
    
  6. 添加Docker Engine-企业稳定存储库:

    $ sudo -E yum-config-manager \
        --add-repo \
        "$DOCKERURL/rhel/docker-ee.repo"
    
  1. /etc/yum.repos.d/删除现有的Docker存储库:

    $ sudo rm /etc/yum.repos.d/docker*.repo
    
  2. 将URL(您在上面复制的 )临时存储在环境变量中。在以下命令中,用您的URL替换<DOCKER-EE-URL> 。会话结束时,此变量分配不会持久:

    $ export DOCKERURL="<DOCKER-EE-URL>"
    
  3. 将变量DOCKERURL的值(来自上一步)存储在/etc/yum/vars/中的yum变量中:

    $ sudo -E sh -c 'echo "$DOCKERURL/rhel" > /etc/yum/vars/dockerurl'
    

    另外,将您的操作系统版本字符串存储在/etc/yum/vars/dockerosversion 。大多数用户应使用8 ,但您也可以使用更具体的次要版本。

    $ sudo sh -c 'echo "8" > /etc/yum/vars/dockerosversion'
    
  4. 安装所需的软件包: yum-utils提供yum-config-manager实用程序,并且devicemapper存储驱动程序需要device-mapper-persistent-datalvm2

    $ sudo yum install -y yum-utils \
      device-mapper-persistent-data \
      lvm2
    
  5. 添加Docker Engine-企业稳定存储库:

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

从存储库安装

注意 :如果需要运行Docker Engine-Enterprise 2.0,请参阅以下说明:

  • 18.03-较旧的Docker引擎-仅企业引擎版本
  • 17.06 -Docker企业版2.0(Docker Engine,UCP和DTR)。
  1. 安装最新的修补程序版本,或转到下一步以安装特定版本:

    $ sudo yum -y install docker-ee docker-ee-cli containerd.io
    

    如果提示您接受GPG密钥,请验证指纹是否与77FE DA13 1A83 1D29 A418 D3E8 99E5 FF2E 7668 2BC9 ,如果是,请接受它。

  2. 要安装特定版本的Docker Engine-Enterprise(在生产中推荐),请列出版本并安装:

    一种。列出并排序您存储库中可用的版本。此示例按版本号(从高到低)对结果进行排序,并被截断:

    $ sudo yum list docker-ee  --showduplicates | sort -r
    
    docker-ee.x86_64      19.03.ee.2-1.el7.rhel      docker-ee-stable-18.09
    

    返回的列表取决于您启用的存储库,并且特定于您的Red Hat Enterprise Linux版本(在此示例中以.el7表示)。

    b。通过它的完全限定的包名称,它是包名(安装特定版本docker-ee ()加上版本串(第二列)开始在所述第一结肠: ),直至第一连字符,用连字符(分离- )。例如docker-ee-18.09.1

    $ sudo yum -y install docker-ee-<VERSION_STRING> docker-ee-cli-<VERSION_STRING> containerd.io
    

    例如,如果要安装18.09版本,请运行以下命令:

    sudo yum-config-manager --enable docker-ee-stable-18.09
    

    Docker已安装但尚未启动。docker组已创建,但没有用户添加到该组。

  3. 启动Docker:

    如果使用devicemapper ,请根据存储指南确保在启动Docker之前已正确配置它。

    $ sudo systemctl start docker
    
  4. 通过运行hello-world映像来验证是否正确安装了Docker Engine-Enterprise。此命令下载测试图像,在容器中运行它,打印参考消息,然后退出:

    $ sudo docker run hello-world
    

    Docker Engine-Enterprise已安装并正在运行。使用sudo运行Docker命令。请参阅Linux后安装,以允许非特权用户运行Docker命令。

从存储库升级

  1. 添加新的存储库

  2. 请遵循安装说明并安装新版本。

软件包安装和升级

要手动安装Docker Enterprise,请下载适用于您的发行版的.rpm文件。每次升级Docker Enterprise时,都需要下载一个新文件。

在IBM Z系统上安装Docker Engine-Enterprise 17.06.xx之前禁用SELinux

当前在IBM Z系统上不支持selinux 。如果尝试在启用了selinux的IBM Z系统上安装或升级Docker Engine-Enterprise,则会引发错误,即找不到container-selinux软件包。禁用selinux安装或在IBM Z. IBMž系统升级之前泊坞窗上支持泊坞窗引擎-企业版仅17.06.xx。

打包安装

  1. 启用extras RHEL存储库。这样可以确保访问docker-ee所需的container-selinux软件包:

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

    或者,从Red Hat手动获取该软件包。无法公开浏览此存储库。

  2. 转到与浏览器中的试用版或订阅相关联的Docker Engine-Enterprise存储库URL。转到rhel/ 。选择您的Red Hat Enterprise Linux版本,体系结构和Docker版本。从Packages目录下载.rpm文件。

    如果您对使用7目录下的软件包的selinux遇到麻烦,请尝试选择特定于版本的目录,例如7.3

  3. 安装Docker Enterprise,将下面的路径更改为您下载Docker软件包的路径。

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

    Docker已安装但尚未启动。docker组已创建,但没有用户添加到该组。

  4. 启动Docker:

    如果使用devicemapper ,请根据存储指南确保在启动Docker之前已正确配置它。

    $ sudo systemctl start docker
    
  5. 通过运行hello-world映像来验证是否正确安装了Docker Engine-Enterprise。此命令下载测试图像,在容器中运行它,打印参考消息,然后退出:

    $ sudo docker run hello-world
    

    Docker Engine-Enterprise已安装并正在运行。使用sudo运行Docker命令。请参阅Linux后安装,以允许非特权用户运行Docker命令。

  1. 转到与浏览器中的试用版或订阅相关联的Docker Engine-Enterprise存储库URL。转到rhel/ 。选择您的Red Hat Enterprise Linux版本,体系结构和Docker版本。从Packages目录下载.rpm文件。

    如果使用8目录下的软件包在selinux遇到问题,请尝试选择特定于版本的目录。

  2. 安装Docker Enterprise,将下面的路径更改为您下载Docker软件包的路径。

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

    Docker已安装但尚未启动。docker组已创建,但没有用户添加到该组。

  3. 启动Docker:

    如果使用devicemapper ,请根据存储指南确保在启动Docker之前已正确配置它。

    $ sudo systemctl start docker
    
  4. 通过运行hello-world映像来验证是否正确安装了Docker Engine-Enterprise。此命令下载测试图像,在容器中运行它,打印参考消息,然后退出:

    $ sudo docker run hello-world
    

    Docker Engine-Enterprise已安装并正在运行。使用sudo运行Docker命令。请参阅Linux后安装,以允许非特权用户运行Docker命令。

升级套餐

  1. 下载较新的软件包文件。

  2. 使用yum -y upgrade而不是yum -y install重复安装过程 ,然后指向新文件。

卸载Docker Engine-Enterprise

  1. 卸载Docker Engine-Enterprise软件包:

    $ sudo yum -y remove docker-ee
    
  2. 删除所有图像,容器和卷(因为它们不会自动从主机中删除):

    $ sudo rm -rf /var/lib/docker
    
  3. 删除其他与Docker相关的资源:
    $ sudo rm -rf /run/docker
    $ sudo rm -rf /var/run/docker
    $ sudo rm -rf /etc/docker
    
  4. 如果需要,请删除devicemapper精简池,然后重新格式化其中一部分的块设备。

您必须手动删除所有已编辑的配置文件。

下一步

需求安装rhelrpm安装卸载升级更新