2016-08-04 195 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' –