92 votes

Docker Compose Up génère l'erreur "Le système ne peut pas trouver le fichier spécifié".

J'ai récemment installé Docker Toolbox sur ma machine Windows 10.

Cependant, chaque fois que j'exécute docker-compose up J'obtiens le message d'erreur suivant :

Traceback (most recent call last):
  File "<string>", line 3, in <module>
  File "compose\cli\main.py", line 65, in main
  File "compose\cli\main.py", line 117, in perform_command
  File "compose\cli\main.py", line 849, in up
  File "compose\project.py", line 372, in up
  File "compose\project.py", line 539, in warn_for_swarm_mode
  File "site-packages\docker\api\daemon.py", line 33, in info
  File "site-packages\docker\utils\decorators.py", line 47, in inner
  File "site-packages\docker\client.py", line 139, in _get
  File "site-packages\requests\sessions.py", line 488, in get
  File "site-packages\requests\sessions.py", line 475, in request
  File "site-packages\requests\sessions.py", line 596, in send
  File "site-packages\requests\adapters.py", line 423, in send
  File "site-packages\requests\packages\urllib3\connectionpool.py", line 595, in urlopen
  File "site-packages\requests\packages\urllib3\connectionpool.py", line 363, in _make_request
  File "httplib.py", line 1057, in request
  File "httplib.py", line 1097, in _send_request
  File "httplib.py", line 1053, in endheaders
  File "httplib.py", line 897, in _send_output
  File "httplib.py", line 859, in send
  File "site-packages\docker\transport\npipeconn.py", line 31, in connect
  File "site-packages\docker\transport\npipesocket.py", line 22, in wrapped
  File "site-packages\docker\transport\npipesocket.py", line 49, in connect
pywintypes.error: (2, 'WaitNamedPipe', 'The system cannot find the file specified.')
docker-compose returned -1

Notez que j'ai C:\Python27 y C:\Python27\Scripts dans mes deux utilisateur y système les variables d'environnement. J'ai également essayé avec Python 3, et cela ne fonctionne toujours pas.

0 votes

Peut-être est-ce la même chose que dans le cas présent ? github.com/shipping-docker/php-app/issues/19

0 votes

Pourriez-vous ajouter le docker-compose pour que nous sachions si vous mappez un volume ou quelle image vous utilisez ?

0 votes

Pouvez-vous ajouter le code pertinent et la configuration du fichier Docker ?

258voto

Razze Points 1206

J'ai juste oublié de lancer "Docker for Windows", ce qui a entraîné cette erreur.

4 votes

Si cela n'a pas fonctionné, vous pouvez également l'éteindre et le rallumer. Fermez le terminal de démarrage rapide, ouvrez manuellement Virtualbox, arrêtez la VM Docker (pour moi, elle s'appelait default ), puis rouvrir le terminal de démarrage rapide. Cela relancera le processus de démarrage, ce qui permettra peut-être de corriger les erreurs liées au réseau.

4 votes

Idem, j'ai juste oublié de le lancer

0 votes

Docker pour Windows a été redémarré suite à une mise à jour mais docker-compose a cessé de fonctionner ; le redémarrage de Docker n'a pas suffi car la VM Linux était absente d'Hyper-V après la mise à niveau. L'arrêt de Docker pour Windows a permis de créer la VM au redémarrage.

24voto

jenming Points 379

Vous et moi n'avons pas forcément le même problème. Dans le lien posté par @Haken Lid ci-dessus, le problème vient du fait que la variable d'environnement PATH ne contient pas la bonne version de Python.

MAIS, pour moi, le problème était que je n'avais pas défini toutes mes variables d'environnement, en lançant

eval $(docker-machine env <vmname>)

avant d'exécuter le docker-compose <any command> .

18voto

Abdourahmane FALL Points 987

Exécuter docker-compose avec le terminal de démarrage rapide de Docker. Cela résoudra votre erreur.

Les Terminal de démarrage rapide de Docker est principalement un shell normal mais permet de créer une machine par défaut. Il peut également être utilisé pour se connecter à d'autres machines :

eval $(docker-machine env <MACHINE_NAME>)

4 votes

Et si ce n'est pas le cas ? ;o)

4 votes

Qu'est-ce que la "Terminal de démarrage rapide de Docker" ? Pouvez-vous ajouter une référence à votre réponse ? Répondez en éditant votre réponse, pas ici dans les commentaires.

0 votes

Il n'y a pas de terminal de démarrage rapide de Docker fourni avec l'installation de Docker pour Windows, et docker-machine n'est pas censé être utilisé avec Windows.

17voto

Mike Glenn Points 1474

Assurez-vous que Docker pour Windows est en place et fonctionne dans la barre d'état système. C'était mon problème.

6voto

Bala Points 683

Vous pouvez définir des propriétés en tapant les commandes suivantes :

docker-machine env --shell cmd default
@FOR /f "tokens=*" %i IN ('docker-machine env --shell cmd default') DO @%i

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X