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

问题描述 投票:24回答:10

我已经使用命令安装了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。

docker-compose
10个回答
42
投票

如果你想关注the instructions on the Docker site,你应该删除现有的docker-compose

sudo apt-get remove docker-compose

然后在the release page at GitHub上找到最新版本,或者如果你安装了jq就通过卷曲API(感谢dragon788frbl的改进):

VERSION=$(curl --silent https://api.github.com/repos/docker/compose/releases/latest | jq .name -r)

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

DESTINATION=/usr/local/bin/docker-compose
sudo curl -L https://github.com/docker/compose/releases/download/${VERSION}/docker-compose-$(uname -s)-$(uname -m) -o $DESTINATION
sudo chmod 755 $DESTINATION

0
投票

在ubuntu桌面18.04.2上,当使用curl命令安装软件包时,我从路径中删除了“本地”,它对我有用。见Kshitij的上述答案。


12
投票

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

pip install docker-compose

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

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


10
投票

基于@ 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)

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


8
投票

如果上述方法不适合您,请参考以下答案: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

1
投票

这是使用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

1
投票

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

此命令必须返回结果,以便检查它是否安装在此处:

ls -l /usr/local/bin/docker-compose

删除旧版本:

sudo rm -rf docker-compose

下载最新版本(查看官方回购: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

(如果需要,替换1.24.0)

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

sudo chmod +x /usr/local/bin/docker-compose

检查版本:

docker-compose -v

0
投票

从命令行使用它: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

然后测试版本:

$ docker-compose --version

0
投票

在经历了很多寻找方法之后,我最终使用了jq,希望我可以扩展它以处理除Docker-Compose之外的其他repos而不需要太多工作。

# If you have jq installed this will automatically find the latest release binary for your architecture and download it
curl --silent "https://api.github.com/repos/docker/compose/releases/latest" | jq --arg PLATFORM_ARCH "$(echo `uname -s`-`uname -m`)" -r '.assets[] | select(.name | endswith($PLATFORM_ARCH)).browser_download_url' | xargs sudo curl -L -o /usr/local/bin/docker-compose --url

0
投票

如果你有自制软件,你也可以通过brew安装

$ brew install docker-compose

这是在Mac OS系统上安装的好方法

© www.soinside.com 2019 - 2024. All rights reserved.