如何从 apt-cache 策略 docker-ce 候选列表中安装特定的 docker 版本

如何从 apt-cache 策略 docker-ce 候选列表中安装特定的 docker 版本

命令“Docker-ce”列出所有候选

root@ubuntu:/home/master# apt-cache policy docker-ce
docker-ce:  
   Installed: (none)   
   Candidate: 5:19.03.6~3-0~ubuntu-xenial
   Version table:
     5:18.09.9~3-0~ubuntu-bionic 500
      500 https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages

然后,当使用候选列表中的字符串值发出命令时失败

root@ubuntu:/home/master# sudo apt-get install docker-ce=18.03.1~ce~3-0~ubuntu-xenial docker-ce-cli=18.03.1~ce~3-0~ubuntu-xenial containerd.io 
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Version '18.03.1~ce~3-0~ubuntu-xenial' for 'docker-ce' was not found 
E: Version '18.03.1~ce~3-0~ubuntu-xenial' for 'docker-ce-cli' was not found

我怎样才能从列表中安装特定版本(该列表不完整,因为 Ask Ubuntu 不允许我粘贴超过 8 个链接)

我需要这个是因为最新版本 19.xx.xx 与 Kubernetes 不兼容/不支持,并且集群构建失败。

答案1

以下是有关如何安装所需 Docker 版本的答案:

  • 更新 apt 软件包索引

    sudo apt-get update
    
  • 要安装特定版本的 Docker Engine - Community,请列出 repo 中的可用版本,然后选择并安装

    apt-cache madison docker-ce
    
  • 然后最后从列出的版本中选择要安装的版本

    sudo apt-get install -y docker-ce=18.06.1~ce~3-0~ubuntu
    

这将对人们进入docker世界有很大帮助,尽情享受吧!

答案2

您双击了apt-cache输出中的版本,希望将其全部选中。但至少将冒号视为选择的分隔符!因此,您丢失了版本的gnome-terminal前导。5:

刚才被同样的问题难住了,这真是让我大吃一惊!我猜包版本中的冒号相当少见。

答案3

我来这里寻找一种从官方存储库中选择特定版本 docker-ce 的方法,同时能够使用 apt upgrade 来更新补丁版本。

这是我的解决方案:

# /etc/apt/preferences.d/docker
Package: docker-ce docker-ce-cli
Pin: version 5:24.0.*
Pin-Priority: 999

一些附加信息:

  • Package:可以列出用空格分隔的多个数据包
  • Pin:来自官方docker存储库的数据包的版本号以5开头:,我不知道为什么
  • Pin-Priority: 999优先选择匹配的软件包,但如果由于某种原因已经安装了较新的版本,则不会降级它们。

apt_preferences 命令了解更多信息。

相关内容