2016-08-04 228 views
9

我正在尝试使用sudo运行docker-compose。sudo:docker-compose:command not found

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

由于尝试使用curl下载撰写时发生错误,我最终使用pip进行安装。

泊坞版本1.12.0,构建8eab29e 泊坞窗,撰写版本1.8.0,建立94f7016

然而,使用sudo当我尝试运行泊坞窗,构成我得到以下(使用sudo与码头工人是罚款)

sudo: docker-compose: command not found 

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

$ 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 

我曾尝试以下 - 但仍然得到同样的错误:

$ chmod +x /home/username/.local/bin/docker-compose 
$ chmod +x /home/anton/.local/lib/python2.7/site-packages 
+1

*其中*为'docker-compose'安装?你是否通过一个包来安装它(在这种情况下,'dpkg -s docker-compose'会验证这一点),还是通过其他机制安装? – larsks

+0

@larsks - 已更新 – Magick

+0

同样的错误,找不到命令?你尝试'sudo /home/user/.local/bin/docker-compose ...'? – BMitch

回答

15

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

  1. 泊坞窗,撰写根本完全不安装的,你需要安装它。

    这里的解决方案很简单:安装docker-compose

  2. docker-compose安装在您的$HOME目录(或其他位置不在root的$PATH上)。

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

    sudo docker-compose ... 
    

    有了:

    sudo `which docker-compose` ... 
    

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

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

+0

我想特别感谢你使用back tic单引号'sudo'docker-compose'包含快速简单的解决方案。 。 。 '与后面的抽动很好的工作,失败与其他任何... – zipzit

6

如果你已经尝试通过官方泊坞窗,撰写页面,在这里你需要下载二进制使用curl安装:

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/local/bin/docker-compose 

如果搬运工-撰写利用安装蟒-PIP

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

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

如果搬运工,撰写安装在用户的路径,然后尝试:

sudo "PATH=$PATH" docker-compose 

当我从你更新的帖子看到,搬运工,撰写安装在用户路径/home/user/.local/bin,如果这条道路是不是在你的本地路径$PATH,然后尝试:

sudo "PATH=$PATH:/home/user/.local/bin" docker-compose 
+0

有多种方式来安装它,点是一个,但它也可以作为二进制下载。 – BMitch

+0

我用pip来安装撰写。 – Magick

+0

仅供参考,可以在没有sudo的情况下'pip install docker-compose' - 这会在本地用户的'$ HOME/.local/bin'下安装 - 之后,只需在.bashrc/.zshrc /它包括它:'export PATH = $ HOME/.local/bin:$ PATH' – zamnuts

4

我会离开这里这是一个可能的修复,至少对我的工作和可能帮助别人。很确定这将是一个Linux唯一的修复。

我决定不使用pip安装并使用github版本(安装指南中的选项一)。

而不是将复制的docker-compose目录从curl/github命令放到/ usr/local/bin/docker-compose中,我使用的是/ usr/bin/docker-compose,这是Docker本身的位置,将强制程序以root身份运行。所以它可以在root和sudo中运行,但是现在如果没有sudo的话,它就无法工作了,所以你需要将它作为用户来运行。

+0

除了将docker-compose移动到其他位置,它还有助于添加一个符号链接:'ln -s/usr/bin/docker-compose/usr/local/bin/docker-compose' –