我已经在CentOS 7上安装了docker,运行如下命令:

curl -sSL https://get.docker.com/ | sh
systemctl enable docker && systemctl start docker
docker run hello-world

注意:helloworld运行正常,没有问题。

然而,当我试图运行docker-compose (docker-compose。yml存在并且有效)它只在CentOS上给了我错误(Windows版本的docker-compose文件工作良好)

/usr/local/bin/docker-compose: line 1: {error:Not Found}: command not found

当前回答

如果你用的是ubuntu, docker compose可以工作,但docker-compose不行,你需要旧的docker-compose语法可用(可能第三方库使用它),你可以通过以下步骤修复它:

docker-compose插件可能安装在/usr/libexec/docker/cli-plugins/docker-compose(确保它是)

创建一个符号链接到它:

sudo ln -s /usr/libexec/docker/cli-plugins/docker-compose /usr/bin/docker-compose

现在docker-compose应该可用了

更新:

如果docker-compose在上述路径中找不到,您可以从您的操作系统的发布页面手动下载它,然后移动下载的文件并使其可执行。

cd ~/Downloads
sudo mv ./docker-compose-* /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

其他回答

尝试在CentOS上使用curl per docker docs安装docker-compose(适用于Linux)。在这些步骤之后,它返回一个错误

docker-compose -v
/usr/local/bin/docker-compose: line 1: Not: command not found

有趣的是,docker-compose文件在第一行只包含“Not Found”(它应该是二进制文件)

cat /usr/local/bin/docker-compose
Not Found

这意味着我试图从github链接卷曲不存在。我失败的链接是:

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

在本地运行uname -s和uname -m可以看到需要添加到下载url中的内容

uname -s
Linux
uname -m
x86_64

在浏览器中尝试url https://github.com/docker/compose/releases/download/2.2.2/docker-compose-linux-x86_64 显示未找到该页面。

一个他们在版本中添加“v”的问题,如v2.2.2。所以下载url应该是v https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-linux-x86_64。他们的发布:https://github.com/docker/compose/releases/

这是有效的(注意v2.2.2)

sudo curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose -v
Docker Compose version v2.2.2

以上的解决方案对我不起作用。但我发现这个很管用:

sudo apt-get update -y && sudo apt-get install -y python3-pip python3-dev
sudo apt-get remove docker docker-engine docker.io
curl -fsSL get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo pip3 install docker-compose
#sudo docker-compose -f docker-compose-profess.yml pull ofw
sudo usermod -a -G docker $USER
sudo reboot

docker-compose目前是一个利用docker(-engine)的工具,但没有包含在docker的发行版中。

以下是安装手册的链接: https://docs.docker.com/compose/install/

TL; diana:

curl -L https://github.com/docker/compose/releases/download/1.8.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/bin/docker-compose

(1.8.0将在未来更改)

2022年5月更新

自2022年4月以来,docker compose V2是GA,现在它是docker桌面的一部分。你可以在这里看到所有相关信息。 Compose V1现在被标记为已弃用。

最初的回答:

Docker compose v1是一个单独的安装。要安装v1,请遵循此处的说明。

Docker compose v2目前是一个单独的安装,但当它准备好时,它将集成到Docker中。它被认为是一个docker插件。在这个时候,如果你想要docker撰写v2,因为这个提交你可以做:

sudo apt update \
&& sudo apt install docker-compose-plugin

用apt或相当于yum的词。这将以插件的形式安装新的docker compose V2。

如果你用的是ubuntu, docker compose可以工作,但docker-compose不行,你需要旧的docker-compose语法可用(可能第三方库使用它),你可以通过以下步骤修复它:

docker-compose插件可能安装在/usr/libexec/docker/cli-plugins/docker-compose(确保它是)

创建一个符号链接到它:

sudo ln -s /usr/libexec/docker/cli-plugins/docker-compose /usr/bin/docker-compose

现在docker-compose应该可用了

更新:

如果docker-compose在上述路径中找不到,您可以从您的操作系统的发布页面手动下载它,然后移动下载的文件并使其可执行。

cd ~/Downloads
sudo mv ./docker-compose-* /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose