获取Docker Engine-Fedora社区

预计阅读时间: 10分钟

要开始在Fedora上使用Docker引擎社区,请确保您满足前提条件 ,然后安装Docker

先决条件

Docker EE客户

Fedora不支持Docker EE。有关不同Docker版本支持的操作系统和发行版的列表,请参阅Docker变体

操作系统要求

要安装Docker,您需要以下Fedora版本之一的64位版本:

  • 28
  • 29

卸载旧版本

较旧的Docker版本称为dockerdocker-engine 。如果已安装这些程序,请卸载它们以及相关的依赖项。

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

如果dnf报告没有安装这些软件包,则可以。

/var/lib/docker/ (包括映像,容器,卷和网络)被保留。Docker Engine-Community软件包现在称为docker-ce

安装Docker Engine-社区

您可以根据需要以不同的方式安装Docker Engine-Community:

  • 大多数用户会设置Docker的存储库并从中进行安装,以简化安装和升级任务。这是推荐的方法。

  • 一些用户下载并手动安装 RPM软件包,并完全手动管理升级。这在诸如在无法访问互联网的空白系统上安装Docker的情况下非常有用。

  • 在测试和开发环境中,一些用户选择使用自动便利脚本来安装Docker。

使用存储库安装

在新主机上首次安装Docker Engine-Community之前,需要设置Docker存储库。之后,您可以从存储库安装和更新Docker。

设置存储库

  1. 安装dnf-plugins-core软件包,该软件包提供从命令行管理DNF存储库的命令。

    $ sudo dnf -y install dnf-plugins-core
    
  2. 使用以下命令来设置稳定的存储库。

    $ sudo dnf config-manager \
        --add-repo \
        https://download.docker.com/linux/fedora/docker-ce.repo
    

可选 :启用每晚测试存储库。

这些存储库包含在上面的docker.repo文件中,但默认情况下处于禁用状态。您可以在稳定存储库旁边启用它们。以下命令启用每晚存储库。

$ sudo dnf config-manager --set-enabled docker-ce-nightly

要启用测试通道,请运行以下命令:

$ sudo dnf config-manager --set-enabled docker-ce-test

您可以通过运行带有--set-disabled标志的dnf config-manager命令来禁用夜间测试存储库。要重新启用它,请使用--set-enabled标志。以下命令禁用夜间存储库。

$ sudo dnf config-manager --set-disabled docker-ce-nightly

了解每晚测试频道

安装Docker Engine-社区

  1. 安装最新版本的Docker Engine-Community和containerd,或者转到下一步安装特定版本:

    $ sudo dnf install docker-ce docker-ce-cli containerd.io
    

    如果提示您接受GPG密钥,请验证指纹是否与060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35 ,如果是,则接受它。

    有多个Docker存储库吗?

    如果您启用了多个Docker存储库,则在未在dnf installdnf update命令中指定版本的情况下进行dnf installdnf update始终安装可能的最高版本,这可能不适合您的稳定性需求。

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

  2. 要安装特定版本的Docker Engine-Community,请在存储库中列出可用版本,然后选择并安装:

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

    $ dnf list docker-ce  --showduplicates | sort -r
    
    docker-ce.x86_64  3:18.09.1-3.fc28                 docker-ce-stable
    docker-ce.x86_64  3:18.09.0-3.fc28                 docker-ce-stable
    docker-ce.x86_64  18.06.1.ce-3.fc28                docker-ce-stable
    docker-ce.x86_64  18.06.0.ce-3.fc28                docker-ce-stable
    

    返回的列表取决于启用的存储库,并且特定于您的Fedora版本(在此示例中以.fc28后缀表示)。

    b。通过完全限定的软件包名称安装特定版本,该软件包名称是软件包名称( docker-ce )加上版本字符串(第二列),直到第一个连字符为止,并用连字符( - )分隔,例如docker-ce-3:18.09.1

    $ sudo dnf -y install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
    

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

  3. 启动Docker。

    $ sudo systemctl start docker
    
  4. 通过运行hello-world映像来验证Docker Engine-Community是否正确安装。

    $ sudo docker run hello-world
    

    此命令下载测试图像并在容器中运行。容器运行时,它会打印参考消息并退出。

Docker Engine-Community已安装并正在运行。您需要使用sudo运行Docker命令。继续进行Linux后安装,以允许非特权用户运行Docker命令以及其他可选配置步骤。

升级Docker引擎-社区

要升级Docker Engine-Community,请按照安装说明进行操作 ,选择要安装的新版本。

从软件包安装

如果您不能使用Docker的存储库来安装Docker,则可以下载该发行版的.rpm文件并手动安装。每次升级Docker Engine-Community时,都需要下载一个新文件。

  1. 转到https://download.docker.com/linux/fedora/并选择您的Fedora版本。转到x86_64/stable/Packages/并下载要安装的Docker版本的.rpm文件。

    注意 :要安装每夜测试 (预发布)软件包,请将上述URL中的stable词改为nightlytest了解每晚测试频道

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

    $ sudo dnf -y install /path/to/package.rpm
    
  3. 启动Docker。

    $ sudo systemctl start docker
    
  4. 通过运行hello-world映像来验证Docker Engine-Community是否正确安装。

    $ sudo docker run hello-world
    

    此命令下载测试图像并在容器中运行。容器运行时,它会打印参考消息并退出。

Docker Engine-Community已安装并正在运行。您需要使用sudo运行Docker命令。继续执行Linux的安装后步骤,以允许非特权用户运行Docker命令以及其他可选配置步骤。

升级Docker引擎-社区

要升级Docker Engine-Community,请下载更新的软件包文件并重复安装过程 ,使用dnf -y upgrade而不是dnf -y install并指向新文件。

使用便捷脚本进行安装

Docker在get.docker.comtest.docker.com上提供了便利脚本,用于将Docker Engine-Community的边缘版本和测试版本快速且非交互地安装到开发环境中。脚本的源代码位于docker-install仓库中不建议在生产环境中使用这些脚本 ,在使用它们之前,您应该了解潜在的风险:

  • 这些脚本需要rootsudo特权才能运行。因此,在运行脚本之前,应仔细检查和审核脚本。
  • 这些脚本会尝试检测Linux发行版和版本,并为您配置软件包管理系统。此外,脚本不允许您自定义任何安装参数。从Docker的角度或您自己组织的准则和标准的角度来看,这可能导致不支持的配置。
  • 这些脚本将安装软件包管理器的所有依赖项和建议,而无需进行确认。这可能会安装大量软件包,具体取决于主机的当前配置。
  • 该脚本未提供用于指定要安装哪个版本的Docker的选项,而是安装了在“ edge”通道中发布的最新版本。
  • 如果已使用其他机制将Docker安装在主机上,请不要使用便捷脚本。

本示例使用get.docker.com上的脚本在Linux上安装最新版本的Docker Engine-Community。要安装最新的测试版本,请改用test.docker.com 。在下面的每个命令中,将每次出现的get替换为test

警告

在本地运行之前,请务必检查从Internet下载的脚本。

$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh

<output truncated>

如果要使用Docker作为非root用户,则现在应考虑使用类似以下方式将用户添加到“ docker”组:

  sudo usermod -aG docker your-user

请记住注销并重新登录才能生效!

警告

将用户添加到“泊坞窗”组后,他们可以运行容器,该容器可用于在Docker主机上获取root特权。有关更多信息,请参考Docker Daemon Attack Surface

Docker Engine-社区已安装。它会在基于DEB的发行版上自动启动。在基于RPM的发行版上,您需要使用适当的systemctlservice命令手动启动它。如该消息所示,默认情况下,非root用户不能运行Docker命令。

注意事项

要安装没有root特权的Docker ,请参阅以非root用户身份运行Docker守护程序(无根模式)

无根模式目前可作为实验功能。

使用便捷脚本后升级Docker

如果使用便捷脚本安装了Docker,则应直接使用包管理器升级Docker。重新运行便利程序脚本没有任何好处,并且如果尝试重新添加已经添加到主机的存储库,则可能导致问题。

卸载Docker Engine-社区

  1. 卸载Docker软件包:

    $ sudo dnf remove docker-ce
    
  2. 主机上的映像,容器,卷或自定义配置文件不会自动删除。要删除所有图像,容器和卷:

    $ sudo rm -rf /var/lib/docker
    

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

下一步

需求apt安装fedorarpm安装卸载升级更新