我已经在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
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
尝试在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