Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker compose 如何将docker compose升级到最新版本_Docker Compose - Fatal编程技术网

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

Docker compose 如何将docker compose升级到最新版本,docker-compose,Docker Compose,我已经使用命令安装了docker compose sudo-apt-install-docker-compose 它安装了docker compose 1.8.0版,构建未知 我需要最新版本的docker compose或至少1.9.0版本 任何人都可以让我知道我应该采取什么方法来升级它或卸载和重新安装最新版本 我已经查看了docker网站,可以看到他们建议安装最新版本的 sudo curl-Lhttps://github.com/docker/compose/releases/download

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

sudo-apt-install-docker-compose

它安装了docker compose 1.8.0版,构建未知

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

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

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

sudo curl-Lhttps://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。

首先,删除旧版本:

如果通过apt get安装

sudo apt-get remove docker-compose
如果通过curl安装

sudo rm /usr/local/bin/docker-compose
如果通过pip安装

pip uninstall docker-compose
然后,通过卷曲API并使用
grep
jq
从响应中提取版本来查找最新版本(感谢这些改进):

最后,下载到您最喜欢的$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

要为Docker Compose安装和升级提供永久性和可持续的解决方案,最简单的方法是使用:

我一直在寻找一个解决“如何升级到最新版本号”这个丑陋问题的好办法,这个问题是在你阅读了官方文件之后出现的——只是偶尔会发现——看看——它应该反映(大部分)当前的版本号


如果要管理软件安装,软件包管理器始终是最好的解决方案!因此,您只需从自己处理版本中提取信息。

如果上述方法不适用于您,请参考以下答案:


根据@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获取最新版本。

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

在研究了很多执行方法之后,我最终使用了
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

如果您有自制软件,也可以通过
brew

$ brew install docker-compose

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

下面是另一个使用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

在UbuntuDesktop 18.04.2上,当使用curl命令安装软件包时,我将“local”从路径中删除,它对我有效。请参见上述Kshitij的答案。

如果您尝试了
sudo apt get remove docker compose
并获得
E:无法找到包docker compose
,请尝试以下方法:

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

ls -l /usr/local/bin/docker-compose
sudo rm -rf docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose -v
删除旧版本:

ls -l /usr/local/bin/docker-compose
sudo rm -rf docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose -v
下载最新版本(查看官方回购:):

(如果需要,更换1.24.0)

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

ls -l /usr/local/bin/docker-compose
sudo rm -rf docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose -v
检查版本:

ls -l /usr/local/bin/docker-compose
sudo rm -rf docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose -v

如果安装了pip,要升级,只需使用:

 pip install --upgrade docker-compose
或者正如Mariyo在pip3中明确指出的那样:

 pip3 install --upgrade docker-compose

我试图在“Ubuntu16.04.5LTS”上安装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
我得到了:

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

当我与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
分三步做。(显示apt get安装)

  • 卸载最后一个。e、 g.对于apt get安装
  • sudo apt get remove docker compose

  • 安装新的()
  • 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

    然后

  • 检查你的版本
  • docker compose--version


    这些解决方案中的大多数已经过时,或者让您安装旧版本。 安装最新的

    sudo apt安装jq
    DOCKER_COMPOSE_VERSION=$(卷曲--静默)https://api.github.com/repos/docker/compose/releases/latest |jq.name-r)
    sudo curl-L“https://github.com/docker/compose/releases/download/$DOCKER\u COMPOSE\u VERSION/DOCKER COMPOSE-$(uname-s)-$(uname-m)“-o/usr/local/bin/DOCKER COMPOSE
    sudo chmod+x/usr/local/bin/docker组合
    
    对于Mac 3.3.0的Docker Desktop,您不需要将Docker Compose作为单独的软件包安装。默认情况下,Docker Compose作为一级公民随Docker一起安装。查看以下CLI:

    
    docker compose version
    Docker Compose version 2.0.0-beta.1%
    

    虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,仅链接的答案可能无效。-@Luuklag更新了答案。感谢您的建议在/usr/local/bin/docker-compose中更新option路径似乎非常慢,然后运行
    sudo-chmod+x/usr/bin/docker-compose
    无需移动文件。
    /usr/local/bin
    路径应该已经在
    $path
    中。只是
    chmo