sudo: docker-composer: commande introuvable
j'essaie de lancer docker-composer en utilisant sudo.
j'ai docker et docker-composer installés sur Ubuntu 16.01.
en raison d'une erreur en essayant de télécharger composer en utilisant curl, j'ai fini par l'installer en utilisant pip.
Docker version 1.12.0, build 8eab29e docker-composer la version 1.8.0, construire 94f7016
pourtant, quand j'essaie d'exécuter docker-composer avec sudo j'obtiens ce qui suit (utiliser sudo avec docker est très bien)
sudo: docker-compose: command not found
je supposons qu'il existe différentes définitions de ce que "installé". J'ai été en utilisant le panneau-composer sur le même ordinateur qui prétend qu'il n'est pas installé.
$ 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
j'ai essayé les suivantes - mais toujours la même erreur:
$ chmod +x /home/username/.local/bin/docker-compose
$ chmod +x /home/anton/.local/lib/python2.7/site-packages
5 réponses
Sur Ubuntu 16.04
Voici comment j'ai corrigé ce problème: Refer Docker Compose la documentation
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
sudo chmod +x /usr/local/bin/docker-compose
Après la commande curl , il va mettre docker-composer dans le
/ usr/local / bin
qui n'est pas sur le chemin Pour le réparer, créer une symbolique lien:
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
et maintenant si vous le faites: docker-composer -- version
vous verrez que docker-composer est maintenant sur le chemin
La sortie de dpkg -s ...
démontre que docker-compose
n'est pas installé à partir d'un package. Sans plus d'informations de votre part, il y a au moins deux possibilités:
docker-composer n'est tout simplement pas installé du tout, et vous devez l'installer.
la solution ici est simple: installer
docker-compose
.menu fixe-composer est installé dans votre
$HOME
répertoire (ou autre emplacement non sur root's$PATH
).il y a plusieurs solutions dans ce cas. Le plus simple est probablement de remplacer:
sudo docker-compose ...
Avec:
sudo `which docker-compose` ...
appel
sudo
avec le chemin d'accès completdocker-compose
.vous pouvez aussi installer
docker-compose
dans un répertoire à l'échelle du système, tel que/usr/local/bin
.
si vous avez essayé l'installation via la page officielle docker-composer, où vous devez télécharger le binaire en utilisant curl:
curl -L https://github.com/docker/compose/releases/download/1.8.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
Alors n'oubliez pas d'ajouter un indicateur de fichier exécutable binaire:
chmod +x /usr/local/bin/docker-compose
si docker-composer est installé en utilisant python-pip
sudo apt-get -y install python-pip
sudo pip install docker-compose
essayez d'utiliser pip show --files docker-compose
voir où il est installé.
si docker-composer est installé dans user path, alors essayez:
sudo "PATH=$PATH" docker-compose
Comme je le vois à partir de votre post mis à jour, docker-composez est installé dans le chemin de l'utilisateur /home/user/.local/bin
et si ce chemin n'est pas dans votre chemin d'accès local $PATH
, puis essayer:
sudo "PATH=$PATH:/home/user/.local/bin" docker-compose
je vais laisser cela ici comme une solution possible, a travaillé pour moi au moins et pourrait aider les autres. Je suis presque sûr que ce ne serait qu'une solution pour linux.
j'ai décidé de ne pas suivre l'installation pip et de suivre la version github (option 1 sur le guide d'installation).
au lieu de placer le répertoire copié docker-composer dans /usr / local / bin/docker-composer à partir de la commande curl /github, je suis allé avec/usr/bin / docker-composer qui est l'emplacement de Docker lui-même et va forcer le programme à exécuter en root. Donc, il fonctionne en root et sudo mais maintenant ne fonctionnera pas sans sudo donc effet opposé qui est ce que vous voulez l'exécuter en tant qu'utilisateur de toute façon.
j'ai le même problème , j'ai résolu le problème :
step-1 : Télécharger docker-composer en utilisant la commande suivante.
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
Étape 2 : Exécutez la commande
chmod +x /usr/local/bin/docker-compose
Étape 3 : Vérifiez docker-composer version
docker-compose --version