sudo: docker-compose: command not found
我正在尝试使用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一起使用就可以了)
1 | sudo: docker-compose: command not found |
我想对"已安装"的含义有不同的定义。我一直在声称未安装docker的同一台计算机上使用docker-compose。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 | $ 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 |
我尝试了以下方法-但仍然收到相同的错误:
1 2 | $ chmod +x /home/username/.local/bin/docker-compose $ chmod +x /home/username/.local/lib/python2.7/site-packages |
在Ubuntu 16.04上
这是我解决此问题的方法:请参阅Docker Compose文档
执行curl命令后,它将docker-compose放入
/usr/local/bin
不在
要修复它,请创建一个符号链接:
现在,如果您这样做:
您将看到docker-compose现在位于
docker-compose根本没有安装,您需要安装它。
这里的解决方案很简单:安装
docker-compose已安装在您的
在这种情况下,有几种解决方案。最简单的方法可能是替换:
1 | sudo docker-compose ... |
使用:
1 | sudo `which docker-compose` ... |
这将调用
您也可以将
如果您尝试通过docker-compose官方页面进行安装,则需要使用curl下载二进制文件:
1 | curl -L https://github.com/docker/compose/releases/download/1.8.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose |
然后不要忘记将可执行文件标志添加到二进制文件中:
1 | chmod +x /usr/local/bin/docker-compose |
如果使用python-pip
安装了docker-compose
1 2 | sudo apt-get -y install python-pip sudo pip install docker-compose |
尝试使用
如果在用户路径中安装了docker-compose,请尝试:
1 | sudo"PATH=$PATH" docker-compose |
从更新后的帖子中可以看到,docker-compose已安装在用户路径
1 | sudo"PATH=$PATH:/home/user/.local/bin" docker-compose |
我将把它留在这里作为可能的解决方法,至少对我有用,并且可能会帮助其他人。相当确定这将是仅Linux修复程序。
我决定不使用pip安装,而不要使用github版本(安装指南中的选项一)。
我没有使用curl / github命令将复制的docker-compose目录放置到
如果为您的用户安装了
-
找出docker-compose的路径:
1which docker-compose -
运行命令以指定上一条命令到
docker-compose 的完整路径,例如:1sudo /home/your-user/your-path-to-compose/docker-compose up
我遇到了同样的问题,我解决了问题:
步骤1:使用以下命令下载docker-compose。
1 2 3 | 1. sudo su 2. 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步:运行命令
1 | chmod +x /usr/local/bin/docker-compose |
第3步:检查docker-compose版本
1 | docker-compose --version |
或者,只需将您的二进制路径添加到PATH中。在bashrc的末尾:
1 2 | ... export PATH=$PATH:/home/user/.local/bin/ |
保存文件并运行:
1 | source .bashrc |
,该命令将起作用。