【问题标题】:Why is Docker installed but not Docker Compose?为什么安装了 Docker 而不是 Docker Compose?
【发布时间】:2016-08-09 17:15:06
【问题描述】:

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

【问题讨论】:

  • 有趣的是,对于 Windows 和 Mac,一切都已加载并可用,而 Linux 用户必须经历分别输入和安装东西并弄清楚东西的苦差事(这当然很有趣)
  • 如果user 是一名开发人员,他们可能不会因为输入一些命令而烦恼,因为他们通常会在正常的一天中输入数百个这样的内容。
  • 这个命令在 ubuntu/arm64 上对我有用 - sudo pip3 -v install docker-compose
  • @mahen3d 我正在回复我上面的评论,而不是问题。

标签: docker docker-compose dockerfile


【解决方案1】:

您还需要安装 Docker Compose。请参阅manual。以下是您需要执行的命令

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

【讨论】:

【解决方案2】:

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

首先清理以前的工作:

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

那就关注this guidance re docker-compose on Rpi

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

【讨论】:

  • 您的解决方案完美运行!如果不需要最新版本的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 错误。谢谢
  • 我遇到了一些麻烦,并为 docker-compose 使用了 'apt purge' 和 'pip uninstall' 然后重新安装(不确定是一个还是两个),但解决方案的重要部分也是:pip安装 --upgrade docker-py
  • 完美!没有任何 curl、chmod 和版本检查。只是自动安装最后一个版本。应该被接受为答案。
  • 使用 pip 安装 docker-compose 时出现大量错误。如果你也这样做,试试这个答案stackoverflow.com/a/43012312/430773
【解决方案3】:

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

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

只要做:

$ sudo apt-get install docker-compose

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

$ sudo dnf install docker-compose

【讨论】:

  • Apt get -- 即使在添加了他们为 docker CE 指定的存储库之后,似乎也只包含 docker-compose 1.8,它与版本 2 的最大 docker-compose.yml 文件兼容。换句话说,他们不再将docker-compose 发布到apt-get 默认存储库或他们自己的apt-get 存储库。为了获得更新的版本,您似乎需要使用pip。这让我很恼火,因为它实际上是我唯一使用 pip 的东西。
【解决方案4】:

我在 debian 上,我发现了一些很自然的事情:

apt-get install docker-compose

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

【讨论】:

  • 此命令将安装版本1.25.0。当您运行docker-compose --version 时,输出将为docker-compose version 1.25.0, build unknown
【解决方案5】:

我在 Raspbian OS 上的 Raspberry Pi 3 上进行安装。 curl 方法未解析为有效响应。上面还写着{error: Not Found},我看了一下网址https://github.com/docker/compose/releases/download/1.11.2/docker-compose-Linux-armv7l,是无效的。我想那里没有建造。

本指南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

【讨论】:

    【解决方案6】:

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

    $ docker-compose -v
    

    如果没有安装,请参考安装指南https://docs.docker.com/compose/install/ 如果已安装,则授予二进制文件可执行权限。

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

    检查这是否有效。

    【讨论】:

      【解决方案7】:

      只需使用 brew:

      brew install docker-compose
      

      【讨论】:

      • 这是一个 Linux 问题。虽然 brew 适用于 Linux,但它并不常用。
      【解决方案8】:

      参考上面给出的答案(我没有足够的声誉来单独参考个别解决方案,因此我在这个地方集体这样做),我想用一些重要的建议来补充它们:

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

      2. 来自存储库的 docker-compose 版本为 1.8.0(至少在我看来)。此 docker-compose 版本不支持版本 3 中的配置文件。它仅支持 version = https://docs.docker.com/compose/compose-file/compose-versioning/。根据我自己在 docker 工作的经验,我建议在版本 3 中使用容器配置 - 与版本 https://docs.docker.com/compose/install/

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

      问候, 亚当

      【讨论】:

        【解决方案9】:

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

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

        有趣的事情docker-compose 文件在第 1 行字面上只包含“未找到”(它应该是二进制文件)

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

        这意味着我尝试从中进行 curl 的 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 -suname -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。所以下载网址应该是“vhttps://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
        

        【讨论】:

          【解决方案10】:

          安装 docker 并不意味着你已经安装了 docker-compose。它的先决条件是您已经安装了已经完成的 docker 引擎。之后,您可以按照 link 为 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: line 1: {error:Not Found}: command not found
          • 就像我说的:Docker 引擎与 Docker compose 不同。因此,您可以安装 docker 引擎并仅使用 docker,但是当您想使用 docker compose 时,您需要单独安装它(引擎的安装是先决条件(您已经这样做了))。所以现在试试我在答案中给出的链接(你可以使用 curl 或 pip 来安装 docker-compose)
          【解决方案11】:

          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以后会改)

          【讨论】:

            【解决方案12】:

            我建议在 Mac 上使用官方的 pkg。我猜 docker-compose 默认不再包含在 docker 中:https://docs.docker.com/toolbox/toolbox_install_mac/

            【讨论】:

              【解决方案13】:

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

              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
              

              【讨论】:

                【解决方案14】:

                在 Linux 上,您可以从 GitHub 上的 Compose 存储库发布页面下载 Docker Compose 二进制文件。按照链接中的说明进行操作,其中涉及在终端中运行 curl 命令以下载二进制文件。这些分步说明也包括在下面。

                1:运行此命令下载当前稳定版本的 Docker Compose:

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

                要安装不同版本的 Compose,请将 1.26.2 替换为您要使用的 Compose 版本。

                2:对二进制应用可执行权限:

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

                注意:如果安装后命令 docker-compose 失败,请检查 你的路径。您还可以创建指向 /usr/bin 或任何 路径中的其他目录。

                【讨论】:

                  【解决方案15】:

                  如果您想自动安装 docker-compose 最新版本,只需运行:

                  export docker_compose_latest=$(curl -Ls -o /dev/null -w %{url_effective}  https://github.com/docker/compose/releases/latest  | grep -o '[^/]*$')
                  curl -L "https://github.com/docker/compose/releases/download/${docker_compose_latest}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
                  chmod +x /usr/local/bin/docker-compose
                  

                  它将安装最新版本的 docker-compose。 Official installing way需要你亲手获取的版本。但是我写了一个脚本,它会自动为你获取最新版本。

                  【讨论】:

                    【解决方案16】:

                    如果 docker-compose 已经存在于 /usr/local/bin

                    ls -alt /usr/local/bin/ | grep docker-compose
                    > lrwxr-xr-x    1 root     wheel        77 Mar 11 10:39 docker-compose -> /Applications/Docker.app/Contents/Resources/bin/docker-compose/docker-compose
                    

                    然后最后用这个/usr/local/bin 更新你的 .bash_profile 路径:

                    export PATH="$HOME/.yarn/bin:$HOME/.config/yarn/global/node_modules/.bin:$PATH:/usr/local/bin"
                    

                    运行:

                    source ~/.bash_profile
                    

                    然后检查:

                    echo $PATH
                    > ...
                    which docker-compose
                    > /usr/local/bin/docker-compose
                    docker-compose
                    

                    【讨论】:

                      猜你喜欢
                      • 2021-06-21
                      • 1970-01-01
                      • 2017-11-12
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      相关资源
                      最近更新 更多