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

116

我正在尝试使用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没有问题)

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/username/.local/lib/python2.7/site-packages

1
docker-compose 安装在哪里?您是通过软件包安装的吗(如果是这种情况,dpkg -s docker-compose 将进行验证),还是通过其他机制安装的? - larsks
同样的错误,命令未找到?你尝试过 sudo /home/user/.local/bin/docker-compose ... 吗? - BMitch
根据我的观察,docker-compose已经安装在本地路径中,因此无法访问sudo使用sudo "PATH=$PATH" docker-compose。如果/home/user/.local/bin已经包含在您的用户路径中,则可以使用sudo "PATH=$PATH:/home/user/.local/bin" docker-compose。(更新后的答案) - VanagaS
16个回答

2
你可能在使用已弃用的代码。尝试使用 docker compose 替代 docker-compose

你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心中找到有关如何编写良好答案的更多信息。 - Community

1
sudo curl -L "https://github.com/docker/compose/releases/download/v2.12.2/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

0

docker-compose未安装。请先从官方文档尝试安装。
每当出现此类错误时,请尝试通过键入which command_name来验证应用程序的安装情况,它将搜索可执行文件并显示其位置。


答案已过期,因为现在不需要安装任何东西。Compose子命令与Docker CLI一起提供。 - OneCricketeer

0

0

必须删除一个大的日志文件,然后重新启动docker-compose以释放空间。 我使用了一个由cron每天运行一次的shell脚本:

rm /var/log/cron/log_prodTEST.log
cd /opt/test/metrics
/usr/local/bin/docker-compose up --build --force-recreate -d -T

显然,通过使用docker-compose的完整路径,我可以在corn shell中使用它


0

或者,只需将您的二进制路径添加到PATH中。在bashrc的末尾:

... 
export PATH=$PATH:/home/user/.local/bin/

保存文件并运行:

source .bashrc

并且该命令将会生效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接