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

Sudo apt安装docker-compose

它安装了docker-compose版本1.8.0和build unknown

我需要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

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

执行rm /usr/local/bin/docker-compose

但是这只能在使用curl完成安装时使用。我不确定安装是否像我使用的那样由curl完成

Sudo apt安装docker-compose

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


当前回答

在研究了很多方法之后,我最终使用了jq,希望我可以扩展它来处理Docker-Compose之外的其他回购,而不需要太多的工作。

# 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

其他回答

在ubuntu desktop 18.04.2上,当我使用curl命令安装包时,我从路径中删除了“local”,它为我工作。参见Kshitij的回答。

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

我的案子很奇怪。我使用wsl2和Docker Desktop (Windows 11)。在将文件夹“docker”重命名为“config-dev-server”并像这样更新Dockerfile后,我停止得到这个错误:

COPY ./docker/apache/apache2.conf /etc/apache2/apache2.conf

to

COPY ./config-dev-server/apache/apache2.conf /etc/apache2/apache2.conf

首先,删除旧版本:

如果通过apt-get安装

sudo apt-get remove docker-compose

如果通过curl安装

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

如果通过pip安装

pip uninstall docker-compose

然后在GitHub的发布页面上找到最新版本,或者通过卷曲API并使用grep或jq从响应中提取版本(感谢dragon788, frbl和Saber Hayati的这些改进):

# curl + grep
VERSION=$(curl --silent https://api.github.com/repos/docker/compose/releases/latest | grep -Po '"tag_name": "\K.*\d')

# curl + jq
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

在研究了很多方法之后,我最终使用了jq,希望我可以扩展它来处理Docker-Compose之外的其他回购,而不需要太多的工作。

# 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