J'essaie de composer docker en utilisant Sudo.
J'ai docker et docker-compose installés sur Ubuntu 16.01.
En raison d'une erreur lors de la tentative de téléchargement de compos à l'aide de curl, j'ai fini par l'installer à l'aide de pip.
Docker version 1.12.0, version 8eab29e Docker-compose version 1.8.0, version 94f7016
Cependant, lorsque j'essaie d'exécuter docker-compose avec Sudo, je reçois le message suivant (utiliser Sudo avec docker, c'est bien)
Sudo: docker-compose: command not found
Je suppose qu'il existe différentes définitions de ce que «installé» signifie. J'utilise Docker-Compose sur le même ordinateur qui déclare ne pas l'avoir 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é ce qui suit - mais j'obtiens toujours la même erreur:
$ chmod +x /home/username/.local/bin/docker-compose
$ chmod +x /home/anton/.local/lib/python2.7/site-packages
La sortie de dpkg -s ...
montre que docker-compose
n'est pas installé à partir d'un package. Sans plus d'informations de votre part, il existe au moins deux possibilités:
docker-compose n'est tout simplement pas installé du tout et vous devez l'installer.
La solution ici est simple: installez docker-compose
.
docker-compose est installé dans votre répertoire $HOME
(ou à un autre emplacement que le $PATH
de la racine).
Il y a plusieurs solutions dans ce cas. Le plus simple est probablement de remplacer:
Sudo docker-compose ...
Avec:
Sudo `which docker-compose` ...
Ceci appellera Sudo
avec le chemin complet à docker-compose
.
Vous pouvez également installer docker-compose
dans un répertoire système, tel que /usr/local/bin
.
Si vous avez essayé d'installer via la page officielle docker-compos, où vous devez télécharger le binaire avec 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 l'indicateur de l'exécutable au binaire:
chmod +x /usr/local/bin/docker-compose
Si docker-compose est installé à l'aide de python-pip
Sudo apt-get -y install python-pip
Sudo pip install docker-compose
essayez d'utiliser pip show --files docker-compose
pour voir où il est installé.
Si docker-compose est installé dans le chemin utilisateur, essayez:
Sudo "PATH=$PATH" docker-compose
Comme je le vois dans votre message mis à jour, docker-compose est installé dans le chemin d’utilisateur /home/user/.local/bin
et si ce chemin ne se trouve pas dans votre chemin local $PATH
, essayez alors:
Sudo "PATH=$PATH:/home/user/.local/bin" docker-compose
Je vais laisser cela ici comme une solution possible, travaillé pour moi au moins et pourrait aider les autres. Je suis sûr que ce ne serait qu'une solution à Linux.
J'ai décidé de ne pas utiliser le pip install ni la version github (première option du guide d'installation).
Au lieu de placer le répertoire copié docker-compose dans/usr/local/bin/docker-compose à partir de la commande curl/github, je suis allé avec/usr/bin/docker-compose, qui est l'emplacement de Docker lui-même et forcera le programme courir en racine. Donc cela fonctionne dans root et Sudo mais ne fonctionnera pas maintenant sans Sudo, donc effet opposé qui est ce que vous voulez exécuter en tant qu'utilisateur.
J'ai le même problème, j'ai résolu le problème:
étape 1: téléchargez docker-compose 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: commande Exécuter
chmod +x /usr/local/bin/docker-compose
Étape 3: Vérifier la version de docker-compose
docker-compose --version
Ou bien, ajoutez simplement votre chemin binaire dans le chemin. À la fin du cycle:
...
export PATH=$PATH:/home/user/.local/bin/
sauvegarder le fichier et lancer:
source .bashrc
et la commande fonctionnera.