我正在尝试升级 docker-compose,因为使用当前版本运行 .yml 文件时会出现一些错误。这是我目前的情况:
$ which docker
/usr/bin/docker
$ which docker compose
/usr/bin/docker-compose
$ ls -al | grep docker
-rwxr-xr-x 1 root root 13511128 Feb 28 09:02 docker
-rwxr-xr-x 1 root root 336 Dez 11 2015 docker-compose
-rwxr-xr-x 1 root root 11314960 Feb 28 09:01 docker-containerd
-rwxr-xr-x 1 root root 10464424 Feb 28 09:01 docker-containerd-ctr
-rwxr-xr-x 1 root root 1976648 Feb 28 09:01 docker-containerd-shim
-rwxr-xr-x 1 root root 39473368 Feb 28 09:03 dockerd
-rwxr-xr-x 1 root root 862296 Feb 28 09:01 docker-init
-rwxr-xr-x 1 root root 2573840 Feb 28 09:01 docker-proxy
-rwxr-xr-x 1 root root 8195464 Feb 28 09:01 docker-runc
当尝试从https://github.com/docker/compose/releases。命令的输出:
sudo curl -L https://github.com/docker/compose/releases/download/1.11.2/docker-compose-`uname -s`-`uname -m` > /usr/bin/docker-compose
给我:
bash: /usr/bin/docker-compose: Permission denied
我也正在使用 sudo 命令。为什么会这样?谢谢
答案1
问题的根源在于sudo
只会在curl
命令的一部分上执行,而不会在>
命令的一部分上执行。
您可以sudo
通过以下方式运行该命令的两个部分:
sudo bash -c "curl -L https://github.com/docker/compose/releases/download/1.11.2/docker-compose-`uname -s`-`uname -m` > /usr/bin/docker-compose"
简单的解决方案可能是:
下载文件
获得https://github.com/docker/compose/releases/download/1.11.2/docker-compose-
uname -s
-uname -m
将
sudo
其放置在正确的位置sudo mv docker-compose-`uname -s`-`uname -m` /usr/bin/docker-compose
答案2
sudo curl -L https://github.com/docker/compose/releases/download/1.11.2/docker-compose-`uname -s`-`uname -m` > /usr/bin/docker-compose
> 之后您也需要 sudo 访问权限只需像下面这样更改命令。使用带有 | 管道的 tee 命令。
sudo curl -L https://github.com/docker/compose/releases/download/1.11.2/docker-compose-`uname -s`-`uname -m` |sudo tee /usr/bin/docker-compose