首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sudo: docker-compose:未找到命令

sudo: docker-compose:未找到命令
EN

Stack Overflow用户
提问于 2016-08-05 03:34:29
回答 8查看 147.3K关注 0票数 74

我正在尝试使用sudo运行docker-compose。

我在Ubuntu 16.01上安装了docker和docker-compose。

由于尝试使用curl下载compose时出现错误,我最终使用pip进行了安装。

Docker版本1.12.0,内部版本8eab29e docker-compose版本1.8.0,内部版本94f7016

然而,当我尝试使用sudo运行docker-compose时,我得到了以下结果(使用sudo和docker可以)

代码语言:javascript
复制
sudo: docker-compose: command not found

我想对于“已安装”的含义有不同的定义。我一直在同一台声称没有安装docker-compose的计算机上使用docker-compose。

代码语言:javascript
复制
$ dpkg -s docker-compose
dpkg-query: package 'docker-compose' is not installed and no information is available
Use dpkg --info (= dpkg-deb --info) to examine archive files,
and dpkg --contents (= dpkg-deb --contents) to list their contents.


$ whereis docker-compose
docker-compose: /home/user/.local/bin/docker-compose

$ pip show --files docker-compose
---
Metadata-Version: 2.0
Name: docker-compose
Version: 1.8.0
Summary: Multi-container orchestration for Docker
Home-page: https://www.docker.com/
Author: Docker, Inc.
Author-email: UNKNOWN
Installer: pip
License: Apache License 2.0
Location: /home/anton/.local/lib/python2.7/site-packages
Requires: six, jsonschema, enum34, cached-property, websocket-client, docker-py, requests, docopt, dockerpty, PyYAML, texttable
Classifiers:
  Development Status :: 5 - Production/Stable
  Environment :: Console
  Intended Audience :: Developers
  License :: OSI Approved :: Apache Software License
  Programming Language :: Python :: 2
  Programming Language :: Python :: 2.7
  Programming Language :: Python :: 3
  Programming Language :: Python :: 3.4
Files:
  ../../../bin/docker-compose
  compose/GITSHA
  compose/__init__.py
  compose/__init__.pyc
  compose/__main__.py
  compose/__main__.pyc
  compose/bundle.py
  compose/bundle.pyc
  compose/cli/__init__.py
  compose/cli/__init__.pyc
  compose/cli/colors.py
  compose/cli/colors.pyc
  compose/cli/command.py
  compose/cli/command.pyc
  compose/cli/docker_client.py
  compose/cli/docker_client.pyc
  compose/cli/docopt_command.py
  compose/cli/docopt_command.pyc
  compose/cli/errors.py
  compose/cli/errors.pyc
  compose/cli/formatter.py
  compose/cli/formatter.pyc
  compose/cli/log_printer.py
  compose/cli/log_printer.pyc
  compose/cli/main.py
  compose/cli/main.pyc
  compose/cli/signals.py
  compose/cli/signals.pyc
  compose/cli/utils.py
  compose/cli/utils.pyc
  compose/cli/verbose_proxy.py
  compose/cli/verbose_proxy.pyc
  compose/config/__init__.py
  compose/config/__init__.pyc
  compose/config/config.py
  compose/config/config.pyc
  compose/config/config_schema_v1.json
  compose/config/config_schema_v2.0.json
  compose/config/environment.py
  compose/config/environment.pyc
  compose/config/errors.py
  compose/config/errors.pyc
  compose/config/interpolation.py
  compose/config/interpolation.pyc
  compose/config/serialize.py
  compose/config/serialize.pyc
  compose/config/sort_services.py
  compose/config/sort_services.pyc
  compose/config/types.py
  compose/config/types.pyc
  compose/config/validation.py
  compose/config/validation.pyc
  compose/const.py
  compose/const.pyc
  compose/container.py
  compose/container.pyc
  compose/errors.py
  compose/errors.pyc
  compose/network.py
  compose/network.pyc
  compose/parallel.py
  compose/parallel.pyc
  compose/progress_stream.py
  compose/progress_stream.pyc
  compose/project.py
  compose/project.pyc
  compose/service.py
  compose/service.pyc
  compose/state.py
  compose/state.pyc
  compose/utils.py
  compose/utils.pyc
  compose/volume.py
  compose/volume.pyc
  docker_compose-1.8.0.dist-info/DESCRIPTION.rst
  docker_compose-1.8.0.dist-info/INSTALLER
  docker_compose-1.8.0.dist-info/METADATA
  docker_compose-1.8.0.dist-info/RECORD
  docker_compose-1.8.0.dist-info/WHEEL
  docker_compose-1.8.0.dist-info/entry_points.txt
  docker_compose-1.8.0.dist-info/metadata.json
  docker_compose-1.8.0.dist-info/pbr.json
  docker_compose-1.8.0.dist-info/top_level.txt
Entry-points:
  [console_scripts]
  docker-compose=compose.cli.main:main

我尝试了以下方法--但仍然得到相同的错误:

代码语言:javascript
复制
$ chmod +x /home/username/.local/bin/docker-compose
$ chmod +x /home/username/.local/lib/python2.7/site-packages
EN

回答 8

Stack Overflow用户

发布于 2018-05-09 07:34:04

在Ubuntu 16.04上

下面是我是如何解决这个问题的:请参阅Docker Compose documentation

  1. sudo curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
  2. sudo chmod +x /usr/local/bin/docker-compose

执行curl命令后,它会将docker-compose放入

/usr/local/bin

它不在PATH上。要修复此问题,请创建符号链接:

  1. sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

现在,如果你这样做了:docker-compose --version

您将看到docker-compose现在位于PATH

票数 164
EN

Stack Overflow用户

发布于 2016-08-05 03:49:17

dpkg -s ...的输出表明docker-compose不是从软件包安装的。如果你没有更多的信息,至少有两种可能性:

根本没有安装

  1. docker-compose,您需要安装它。

这里的解决方案很简单: install docker-compose.

  • docker-compose安装在您的$HOME目录中(或其他位置,而不是根目录的$PATH上)。

在这种情况下,有几种解决方案。最简单的可能是替换:

sudo docker-作曲...

通过以下方式:

sudo which docker-compose ...

这将使用docker-compose的完整路径调用sudo

您也可以将docker-compose安装到系统范围的目录中,如/usr/local/bin.

票数 29
EN

Stack Overflow用户

发布于 2016-08-05 04:33:22

如果您尝试通过官方docker-compose页面进行安装,则需要使用curl下载二进制文件:

代码语言:javascript
复制
curl -L https://github.com/docker/compose/releases/download/1.8.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

然后,不要忘记在二进制文件中添加可执行标志:

代码语言:javascript
复制
chmod +x /usr/local/bin/docker-compose

如果使用python-pip安装docker-compose

代码语言:javascript
复制
sudo apt-get -y install python-pip
sudo pip install docker-compose

尝试使用pip show --files docker-compose查看它的安装位置。

如果docker-compose安装在用户路径中,请尝试:

代码语言:javascript
复制
sudo "PATH=$PATH" docker-compose

正如我从你更新的帖子中看到的,docker-compose安装在用户路径/home/user/.local/bin中,如果此路径不在您的本地路径$PATH中,请尝试:

代码语言:javascript
复制
sudo "PATH=$PATH:/home/user/.local/bin" docker-compose
票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38775954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档