如何将docker-compose升级到最新版本

Sam*_*hav 48 docker-compose

我已经使用命令安装了docker-compose

sudo apt install docker-compose

它安装了docker-compose版本1.8.0并构建未知

我需要最新版本的docker-compose或至少1.9.0版本

任何人都可以让我知道我应采取什么方法来升级或卸载并重新安装最新版本.

我查看了docker网站,可以看到他们建议安装最新版本'

sudo curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

但在此之前,我必须卸载当前版本,可以使用该命令完成

sudo rm /usr/local/bin/docker-compose

但只有在使用curl完成安装时才能使用此功能.我不确定安装是否由我使用的curl完成

sudo apt install docker-compose

请让我知道我现在应该做什么来卸载并重新安装docker-compose.

Eri*_*son 67

如果您想按照Docker站点上的说明进行操作,则应删除现有的docker-compose

sudo apt-get remove docker-compose
Run Code Online (Sandbox Code Playgroud)

然后在GitHub的发布页面上找到最新版本,或者如果已经jq安装了卷曲API (感谢dragon788frbl进行此改进):

sudo rm /usr/local/bin/docker-compose
Run Code Online (Sandbox Code Playgroud)

然后下载并更改您最喜欢的$ PATH可访问位置的权限:

pip uninstall docker-compose
Run Code Online (Sandbox Code Playgroud)

  • 您可能想做sudo chmod 755 $ DESTINATION而不是`+ x`。 (3认同)
  • 尝试更新 /usr/local/bin/docker-compose 中的路径,然后运行 ​​`sudo chmod +x /usr/bin/docker-compose` (2认同)
  • 无需移动文件。`/usr/local/bin` 路径应该已经在 `$PATH` 中。只需`chmod`就位。答案已更新以反映这一点。 (2认同)
  • 尼奥,好接球。我通常只是根据我的需要调整烫发,以防其他事情按照他们的需要进行设置。但在这里我们正在下载一个新文件。设置所有烫发是有道理的。 (2认同)
  • @Rebar您能否更具体地说明您希望将路径更新为什么?`/usr/local/bin` 是放置不受打包系统管理的全局二进制文件的非常标准的位置。答案还提到指定“您最喜欢的 $PATH 可访问位置”,这表明如果您的“$PATH”不同,则进行调整。 (2认同)
  • 如果你不想安装 `jq` 来获取最新版本: ```VERSION=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep -Po '"tag_name": "\K.*\d')``` (2认同)

jon*_*ckt 20

为Docker Compose安装及其升级方法提供永久和可持续解决方案的最简单方法是使用包管理器pip(如果您在Linux上):

pip install docker-compose
Run Code Online (Sandbox Code Playgroud)

我正在寻找一个很好的解决方案,用于丑陋的"如何升级到最新的版本号"-problem,它出现在你阅读官方文档之后 - 偶尔发现它 - 只是看看docker-compose pip package - 它应该(大部分)反映最新发布的Docker Compose版本的当前数量.

如果要管理软件安装,软件包管理器始终是最佳解决方案!所以你只需从自己处理版本中抽象出来.

  • `pip install docker-compose` 给了我“要求已经满足:docker-compose”,所以我必须执行 `apt-get purge docker-compose` 和 `hash -d docker-compose` 然后 `pip install docker-compose`在 Ubuntu 18.04 上获取 docker-compose 1.24。 (5认同)
  • +1好答案。以前:我有docker-compose版本:docker-compose版本1.21.2,构建a133471因此,要升级到最新的非RC版本,我发现它可以工作以进行升级:1)`apt install python-pip`进行安装PIP然后`pip install docker-compose`安装最新版本,然后检查版本:`docker-compose --version`给了我:docker-compose版本1.23.2,内部版本1110ad0 (2认同)

Muh*_*lam 18

更新 docker-compose 的简单解决方案

这将删除 docker-compose 的现有二进制文件并安装新版本。

sudo cd /usr/local/bin && sudo rm -rf docker-compose
sudo curl -SL https://github.com/docker/compose/releases/download/v2.24.3/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
sudo chmod +x docker-compose
Run Code Online (Sandbox Code Playgroud)

如需最新版本,请访问https://github.com/docker/compose/releases并将最新版本替换为 v2.24.3


Dep*_*ell 17

如果您尝试sudo apt-get remove docker-compose并获得E: Unable to locate package docker-compose,请尝试以下方法:

这个命令必须返回一个结果,以便检查它是否安装在这里:

ls -l /usr/local/bin/docker-compose
Run Code Online (Sandbox Code Playgroud)

删除旧版本:

sudo rm -rf docker-compose
Run Code Online (Sandbox Code Playgroud)

下载最新版本(查看官方仓库:docker/compose/releases):

sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Run Code Online (Sandbox Code Playgroud)

如果需要,替换 1.24.0

最后,对二进制文件应用可执行权限:

sudo chmod +x /usr/local/bin/docker-compose
Run Code Online (Sandbox Code Playgroud)

检查版本:

docker-compose -v
Run Code Online (Sandbox Code Playgroud)

  • 执行此操作后,我收到此错误 - bash: /usr/bin/docker-compose: No such file or directory (6认同)
  • 如果出现类似 `bash: /usr/bin/docker-compose: No such file or directory` 的错误,只需运行 `sudo mv /usr/local/bin/docker-compose /usr/bin/docker-compose`,然后你会解决这个问题的。 (2认同)

小智 14

分三步进行。(显示 apt-get 安装)

  1. 卸载最后一个。例如 apt-get 安装

sudo apt-get remove docker-compose

  1. 安装新的(https://docs.docker.com/compose/install/

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

进而

 sudo chmod +x /usr/local/bin/docker-compose
Run Code Online (Sandbox Code Playgroud)
  1. 检查您的版本

docker-compose --version


frb*_*rbl 12

基于@ eric-johnson的回答,我目前正在脚本中使用它:

#!/bin/bash
compose_version=$(curl https://api.github.com/repos/docker/compose/releases/latest | jq .name -r)
output='/usr/local/bin/docker-compose'
curl -L https://github.com/docker/compose/releases/download/$compose_version/docker-compose-$(uname -s)-$(uname -m) -o $output
chmod +x $output
echo $(docker-compose --version)
Run Code Online (Sandbox Code Playgroud)

它从GitHub api中获取最新版本.


kpr*_*ast 10

如果以上方法都不适合您,请参考以下答案:https : //stackoverflow.com/a/40554985

curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" > ./docker-compose
sudo mv ./docker-compose /usr/bin/docker-compose
sudo chmod +x /usr/bin/docker-compose
Run Code Online (Sandbox Code Playgroud)

  • 尽管此链接可以回答问题,但最好在此处包括答案的基本部分,并提供链接以供参考。如果链接的页面发生更改,仅链接的答案可能会失效。-[评论](/ review / low-quality-posts / 20350634) (3认同)

Arm*_*nMz 8

我试图在“Ubuntu 16.04.5 LTS”上安装 docker-compose,但安装后如下:

sudo curl -L "https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Run Code Online (Sandbox Code Playgroud)

我得到:

-bash: /usr/local/bin/docker-compose: 权限被拒绝

当我将它与 sudo 一起使用时,我得到:

sudo:docker-compose:找不到命令

所以这是我采取并解决我的问题的步骤:

sudo curl -L "https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo ln -sf /usr/local/bin/docker-compose /usr/bin/docker-compose
sudo chmod +x /usr/bin/docker-compose
Run Code Online (Sandbox Code Playgroud)


Jak*_*son 7

这是另一个使用 curl 和 sed 安装最新版本的 docker-compose 的 oneliner。

curl -L "https://github.com/docker/compose/releases/download/`curl -fsSLI -o /dev/null -w %{url_effective} https://github.com/docker/compose/releases/latest | sed 's#.*tag/##g' && echo`/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose
Run Code Online (Sandbox Code Playgroud)


Yak*_*dry 6

在 Mac 上(也可在 ubuntu 上运行):

sudo curl -L "https://github.com/docker/compose/releases/download/<release-version>/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Run Code Online (Sandbox Code Playgroud)

注意:写在这里: https: //github.com/docker/compose/releases


小智 5

从命令行使用它:sudo curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

记下最新发布版本

对二进制文件应用可执行权限:

sudo chmod +x /usr/local/bin/docker-compose
Run Code Online (Sandbox Code Playgroud)

然后测试版本:

$ docker-compose --version
Run Code Online (Sandbox Code Playgroud)