138 votes

Docker sur Windows 10 "échec du pilote pour la programmation de la connectivité externe sur le point d'accès".

J'essaie d'utiliser $ docker-compose up -d pour un projet et je reçois ce message d'erreur :

ERROR : for api Cannot start service api : driver failed programming external connectivity on endpoint dataexploration_api_1 (8781c95937a0a4b0b8da233376f71d2fc135f46aad011401c019eb3d14a0b117) : Error starting userland proxy : mkdir /port/tcp:0.0.0.0:9000:tcp:172.19.0.2:80 : erreur d'entrée/sortie Des erreurs ont été rencontrées lors du lancement du projet.

Je me demande si ce n'est pas le port ? J'avais essayé le port 8080 auparavant. Le projet a été initialement mis en place sur un Mac et j'ai cloné le dépôt de gitHub.

0 votes

Veuillez ajouter un lien vers le ticket github afin que nous puissions tous nous y rendre et l'upvoter.

7voto

jasie Points 930

Je suis conscient qu'il y a déjà beaucoup de réponses, mais aucune d'entre elles n'a résolu le problème pour moi.
Au lieu de cela, je me suis débarrassé de ce message d'erreur en réinitialisation de docker aux valeurs par défaut :

enter image description here

2voto

Dans mon cas, le problème était que le conteneur docker (Nginx) utilise le port 80, et IIS utilise le même. La configuration d'un autre port dans IIS résout le problème

1voto

Dans la plupart des cas, le premier cas auquel vous devez penser est qu'un ancien service fonctionne et utilise ce port. Dans mon cas, comme j'ai changé le nom de l'image, lorsque j'utilise docker-compose pour arrêter (puis monter), il n'arrête pas l'ancien conteneur (service), ce qui fait que le nouveau conteneur ne peut pas être démarré.

0voto

Tarek Points 305

Une réponse un peu tardive mais je vais la laisser ici, elle pourrait aider quelqu'un d'autre. Sur un Mac mojave, après de nombreux redémarrages du Mac et de Docker, j'ai dû changer le système. j'ai dû sudo apachectl stop .

0voto

Hirumina Points 667
  • La façon la plus simple de résoudre ce problème est de redémarrer le docker. Mais dans certains cas, cela peut ne pas fonctionner, même si aucun conteneur n'est en cours d'exécution dans le port. docker ps et peut voir tous les conteneurs qui n'ont pas été effacés mais qui sont sortis avant d'utiliser la commande docker ps -a commandement.

Imaginons qu'il y ait un conteneur avec l'identifiant du conteneur. 8e35276e845e Vous pouvez utiliser la commande docker rm 8e35276e845e ou docker rm 8e3 pour terminer le conteneur. Notez que les 3 premières chaînes sont l'identifiant de ce conteneur docker particulier. Ainsi, selon le scénario ci-dessus 8e3 est l'identifiant de 8e35276e845e .

  • Si le redémarrage ne fonctionne pas, vous pouvez essayer de modifier les ports des services dans le fichier docker-compose.yml et selon le port d'apache, vous devez changer le port du v-host (s'il y en a un), ce qui résoudra votre problème.

Ex :

    build:
      context: ./apache
      dockerfile: Dockerfile
    working_dir: /var/www/
    volumes:
      - .:/var/www
    networks:
      - app-network
    ports:
      - 8082:80
    depends_on:
      - mysql_db

doit être transformé en

apache_server:
    build:
      context: ./apache
      dockerfile: Dockerfile
    working_dir: /var/www/
    volumes:
      - .:/var/www
    networks:
      - app-network
    ports:
      - 8083:80
    depends_on:
      - mysql_db

et le v-host particulier doit aussi être changé,

Ex(selon le scénario ci-dessus) :

<VirtualHost *:80> 
    ProxyPreserveHost On
    ServerAlias phpadocker.lk
    ProxyPass / http://localhost:8083/
    ProxyPassReverse / http://localhost:8083/
</VirtualHost>

Cela vous aidera à résoudre le problème ci-dessus.

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