已安装Docker但未安装Docker Compose吗?为什么?


127

我通过运行以下命令在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

5
有趣的是,对于Windows和Mac,所有内容均已加载并可用,而Linux用户则不得不费力地分别键入和安装内容并找出内容(这很有趣)
killjoy

Answers:


277

您还需要安装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 mv /usr/local/bin/docker-compose /usr/bin/docker-compose
sudo chmod +x /usr/bin/docker-compose

4
运行第二行时,我收到响应:mv: rename ./docker-compose to /usr/bin/docker-compose: Operation not permitted
kuanb

4
@kuanb,如果它表示不允许许可,请确保您拥有完整的sudo权利
killstreet

目前,版本1.7.0较旧。根据docs.docker.com/compose/install的新版本为1.11.2。这意味着代替卷曲-L github.com/docker/compose/releases/download/1.7.0/...uname -s - uname -m> ./docker-compose应使用卷曲-L github.com/docker/compose/releases/download/ 1.11.2 /…uname -s - uname -m> ./docker-compose
Yuriy Zaletskyy

1
确保指向GitHub版本的链接没有过时!查看GitHub上最新版本。您也可以从浏览器下载最新文件,然后移动并为其授予可执行权限。
totymedli

1
我仍在学习docker,但据我了解,不应将docker-compose用于新安装,因为它的所有功能已通过docker stackdocker swarm和docker swarm 集成到了主要docker-cli中。vsupalov.com/difference-docker-compose-and-docker-stack。也许这个答案应该提到,因为它首先在Google上查找
docker

40

我正在Raspbian 8上安装在Raspberry Pi 3上。curl方法对我来说失败了(line 1: Not: command not found询问时出现错误docker-compose --version),@ sunapi386的解决方案似乎有些过时了,所以我尝试了以下方法:

首先清理之前的工作:

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

然后按照此指南重新在Rpi上进行docker-compose

sudo apt-get -y install python-pip
sudo pip install docker-compose

对我而言(2017年11月1日),以下回复如下docker-compose --version

docker-compose version 1.16.1, build 6d1ac219

6
您的解决方案运行完美!如果您不需要最新版本的docker-compose,也可以使用apt-get install docker-compose。当然,这要求您将docker存储库添加到apt的sources.list中(get.docker.com的安装脚本会自动为您执行此操作)。但是,在带有Raspian Stretch Lite的Raspberry Pi 3上,这产生了一个非常老的版本:docker-compose version 1.8.0, build unknown。这个版本太旧了,仅支持docker-compose文件格式的版本2。
罗伯特

太棒了,这帮助我获得了AWS上的docker-comps错误。谢谢
雷射鹰

1
我遇到了一些麻烦,对docker-compose使用了“ apt purge”和“ pip uninstall”,然后再次重新安装(不确定是其中一个还是两者),但是解决方案的重要部分也是:pip install --upgrade docker-py
mirek '18 -10-25

完善!无需任何卷曲,chmod和版本检查。只是自动安装最新版本。应该接受作为答案。
樱桃

使用pip安装docker-compose时出现大量错误。如果您也这样做,请尝试以下答案stackoverflow.com/a/43012312/430773
Vik

10

我正在Raspbian OS的Raspberry Pi 3上安装。该curl方法无法解析为有效的响应。它还说{error: Not Found},我查看了URL https://github.com/docker/compose/releases/download/1.11.2/docker-compose-Linux-armv7l,但该URL 是无效的。我猜那里没有建筑物。

这份指南https://github.com/hypriot/arm-compose对我有用。

sudo apt-get update
sudo apt-get install -y apt-transport-https
echo "deb https://packagecloud.io/Hypriot/Schatzkiste/debian/ jessie main" | sudo tee /etc/apt/sources.list.d/hypriot.list
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 37BBEE3F7AD95B3F
sudo apt-get update
sudo apt-get install docker-compose

9

如果您通过将docker的官方存储库添加到您的存储库列表中来安装docker,例如:

curl -L https://nightly.odoo.com/odoo.key | apt-key add -
sudo echo "deb http://nightly.odoo.com/10.0/nightly/deb/ ./" >> /etc/apt/sources.list.d/odoo.list
sudo apt-get update && sudo apt-get install odoo

做就是了:

$ sudo apt-get install docker-compose

如果是基于RHEL的发行版/ Fedora:

$ sudo dnf install docker-compose

1
Apt get-即使添加了他们为Docker CE指定的存储库后,似乎仅包含docker-compose1.8,与docker-compose.yml版本2 的最大文件兼容。换句话说,它们不再发布docker-composeapt-get默认存储库或它们自己的apt-获取存储库。为了获得更新的版本,您似乎需要使用pip。这让我很烦,因为这实际上是我使用pip的唯一方法。
Groostav

5

首先请检查是否已安装docker-compose,

$ docker-compose -v

如果尚未安装,请参阅安装指南https://docs.docker.com/compose/install/ 如果已安装,请为二进制文件提供可执行权限。

$ chmod +x /usr/local/bin/docker-compose

检查是否可行。


5

我正在使用debian,我发现很自然的事情:

apt-get install docker-compose

它完成了工作(未在centos上测试)


1

参考上面给出的答案(我没有足够的声誉来单独提及各个解决方案,因此我在此进行集体诉讼),我想向他们补充一些重要的建议:

  1. docker-compose可以从存储库安装(如果您在存储库中有此软件包,如果没有,则可以使用此软件包将其添加到系统中)或使用curl-totourial在项目的官方网站上下载二进制文件-src:https://docs.docker.com/compose/install /

  2. 来自存储库的docker-compose版本为1.8.0(至少对我来说)。此docker-compose版本不支持版本3中的配置文件。它仅支持version = <2。在项目的官方站点中,建议使用版本3中的容器配置-src:https://docs.docker.com/compose/compose-file/compose-versioning/。根据我在Docker中的工作经验,我建议在版本3中使用容器配置-比版本<3中使用的配置选项更多。如果要使用版本3中的配置配置,则必须将docker-compose更新/安装到至少1.17的版本-最好是最新的稳定版。该项目的官方网站是toturally如何执行此过程-src:https://docs.docker.com/compose/install/

  3. 当您尝试手动删除旧的docker-combines二进制文件时,可以在默认路径中获取有关丢失文件的信息/usr/local/bin/docker-compose。就我而言,docker-compose位于默认路径/ usr / bin / docker-compose中。在这种情况下,建议您在系统中使用查找工具查找二进制文件docker-compose-示例语法:sudo find / -name 'docker-compose'。它帮助了我。由于这个原因,我删除了旧的docker-compose版本并将稳定版添加到系统中-我使用curl工具下载了docker-compose二进制文件,将其放在正确的路径中并赋予了正确的权限-所有这些过程都具有在上面的帖子中进行了描述。

问候,亚当


0

安装docker并不意味着您已经安装了docker-compose。作为必备条件,您已经安装了已经完成的Docker引擎。之后,您可以按照Centos 7的此链接安装docker-compose 。


不,我确实运行了该命令“ yum install docker-engine”,但出现错误包docker-engine-1.11.0-1.el7.centos.x86_64已安装且安装了最新版本,但仍然没有docker-compose,它给了我错误/ usr / local / bin / docker-compose:第1行:{error:Not Found}:未找到命令
mahen3d 2016年

就像我说的那样:Docker引擎与Docker组成有所不同。因此,您可以安装docker引擎并仅与docker一起使用,但是当您要使用docker compose时,需要单独安装(引擎安装是前提条件(您已经完成了此操作))。所以,现在尝试我在答案中给出的链接(您可以使用curl或pip安装
docker

0

docker-compose当前是使用docker(-engine)的工具,但未包含在docker发行版中。

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

TL; DR:

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将来会更改)



0

上述解决方案对我不起作用。但是我发现这可行:

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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.