Docker su Windows 10 "driver non riuscito a programmare la connettività esterna sull'endpoint"


134

Sto cercando di utilizzare $ docker-compose up -dper un progetto e sto ricevendo questo messaggio di errore:

ERRORE: per api Impossibile avviare il servizio api: driver non riuscito a programmare la connettività esterna su endpoint dataexploration_api_1 (8781c95937a0a4b0b8da233376f71d2fc135f46aad011401c019eb3d14a0b.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 Si sono verificati errori durante la visualizzazione del progetto.

Mi chiedo se è forse il porto? In precedenza avevo provato la porta 8080. Il progetto è stato originariamente impostato su un Mac e ho clonato il repository da gitHub.


Aggiungi un link al ticket github in modo che tutti possiamo andare lì e votarlo.
PussInBoots

Risposte:


270

Ho ricevuto lo stesso messaggio di errore sul mio Windows 10 Pro / Docker v17.06.1-ce-win24 / Docker-Compose v1.14.0 usando Windows Powershell x86 in modalità amministratore.

La soluzione era semplicemente riavviare Docker.


I docker utente Versione 18.03.0-ce-win59 (16762) su Windows 10 Professional. Docker L'immagine è jenkins / jenkins: 2.107.2. Dopo pull, uso questo comando per installare docker run -p 8080:8080 --name myJenkins -p 50000:50000 jenkins/jenkins:2.107.2. Dopo aver impostato jenkins, utilizzo docker stop myJenkinsin un'altra finestra di comando e spengo il mio host Windows 10. Quando avvio Windows 10 che avvia automaticamente la finestra mobile, utilizzo il comando docker start myJenkinse ottengo il messaggio familiare. Tuttavia, il riavvio della finestra mobile risolve il problema :)
Charles Wu,

1
Qualcuno sa perché questo accade? Il riavvio della finestra mobile sembra instabile, c'è un modo per risolverlo correttamente?
Storm Muller,

La stessa correzione ha funzionato per me nel marzo 2019. Utilizzando Docker Desktop Versione 2.0.0.3 (31259) Canale: stabile Build: 8858db3 Client: Docker Engine - Versione community: 18.09.2 Versione API: 1.39 Vai versione: go1.10.8 Git commit: 6247962 Costruito: dom 10 feb 04:12:31 2019 OS / Arch: windows / amd64 Experimental: false Win 10 versione 10.0.18346.1 (versione veloce della pre-release)
JohnC

ha avuto lo stesso problema su un Mac e il riavvio della finestra mobile lo ha risolto anche ... Gesù avrei dovuto controllare la tua risposta prima di reinstallare l'intero ambiente della finestra mobile localmente ....: D saluti compagno
Sosomqk

67

Se succede una volta, riavviare Docker farà il lavoro. Nel mio caso, accadeva ogni volta che riavviavo il mio computer.

In questo caso, disabilita l'avvio rapido , o probabilmente riavvierai Docker ogni volta che il computer viene avviato. Questa soluzione è stata ottenuta da qui


6
Questo dovrebbe essere accettato come una risposta. Il riavvio funziona ma quando è necessario farlo ogni volta che diventa fastidioso
Vitalii

Ho riscontrato questo errore quando si cambia utente su Windows 10
Vasko

58

Il semplice riavvio di Docker non ha risolto il problema per me su Windows 10.

Nel mio caso, ho risolto il problema con i passaggi esatti di seguito:

1) Chiudi "Docker Desktop"

2) Eseguire i comandi seguenti:

net stop com.docker.service
net start com.docker.service

3) Avviare nuovamente "Docker Desktop"

Spero che questo possa aiutare qualcun altro.


3
Questo funziona per me dopo aver provato a riavviare solo una finestra mobile! Inoltre, non dimenticare di eseguire questa coppia con privilegio di amministratore
Gad Wissberg,

Ha funzionato, ma non ho il privilegio di amministratore tutte le volte :(
Hassan Tareq,

3
Ha funzionato per me riavviare il servizio docker, in genere solo un riavvio desktop docker era sufficiente, ma non questa volta ... Docker su Windows 10 è davvero doloroso (latenze, bug, doc, ...)
a11r

Questo ha funzionato! Dovrebbe essere la vera risposta accettata. Grazie
Dominik K

Ha funzionato per me, grazie!
G.Mast

9

Ho riscontrato anche questo errore, se vuoi sapere il motivo principale per cui si verifica l'errore, è perché la finestra mobile sta già eseguendo un contenitore simile, per risolvere il problema (evita di riavviare Docker), devi:

docker container ls

Hai qualcosa di simile a:

CONTAINER ID        IMAGE               COMMAND             CREATED
1fa4ab2cf395        friendlyhello       "python app.py"     28 seconds ago

Questo è un elenco dei contenitori in esecuzione, prendi l'ID CONTAINER (copia Ctrl+ C)

Ora devi terminare il processo (e lasciare eseguire un'altra immagine) esegui questo comando.

docker container stop <CONTAINER_ID>

E questo è tutto! Ora puoi creare il contenitore.

Per ulteriori informazioni, visitare https://docs.docker.com/get-started/part2/


7

Sono consapevole che ci sono già molte risposte, ma nessuna di esse ha risolto il problema per me.
Invece, mi sono sbarazzato di questo messaggio di errore ripristinando la finestra mobile ai valori predefiniti di fabbrica :

inserisci qui la descrizione dell'immagine


Hai avuto qualche segnalazione di errore da Docker prima di farlo, perché nel mio caso ho avuto qualcosa di simile a un errore con il suggerimento di ripristinare le impostazioni di fabbrica.
Teodosio Asvestopoulos,

No, @TheodosiosAsvestopoulos, non ho ricevuto questo pop-up.
jasie

Strano oggi ho avuto di nuovo lo stesso problema, il riavvio della finestra mobile non ha aiutato. Non volevo ripristinare nuovamente le impostazioni di fabbrica, perché estraiamo immagini molto grandi, quindi ho appena chiuso Docker Desktop e l'ho riaperto e ha funzionato (sembra essere un'azione diversa rispetto al semplice riavvio).
Teodosio Asvestopoulos,

6

Normalmente questo errore si verifica quando si tenta di avviare un contenitore ma le porte necessarie per il contenitore vengono fornite, in genere dallo stesso Docker come il risultato di un ultimo processo errato da arrestare.

Per me la soluzione è:

  1. Apri Windows CMD come amministratore, digita netstat -oanper trovare il processo (Docker è quel processo) che sta fornendo la tua porta:

Nel mio caso le mie porte docker sono 3306 6001 8000 9001.

  1. Ora abbiamo bisogno di liberare quelle porte, quindi andiamo a uccidere questo processo con PID (colum PID), tipo

    TASKKILL /PID 9816 /F
    
  2. Riavvia la finestra mobile.

  3. Siate felici.

Saluti.


2

Nel mio caso, il problema era che il contenitore docker (Nginx) utilizza 80 porte e IIS utilizza lo stesso. L'impostazione di un'altra porta in IIS risolve il problema


1

Nella maggior parte dei casi, il primo caso a cui dovresti pensare è che esiste un vecchio servizio in esecuzione e che utilizza quella porta. Nel mio caso, poiché cambio il nome dell'immagine, quindi quando si utilizza docker-compose per arrestare (quindi su), non fermerà il vecchio contenitore (servizio), non è possibile avviare il nuovo contenitore.


0

Una risposta un po 'tardiva, ma la lascerò qui potrebbe aiutare qualcun altro su un mojave su Mac dopo un sacco di riavvii di Mac e Docker che ho dovuto sudo apachectl stop.


0
  • Il modo più semplice per risolvere questo problema è il riavvio della finestra mobile. In alcuni casi, tuttavia, potrebbe non funzionare anche se non sono presenti contenitori in esecuzione nel porto. È possibile controllare i contenitori in esecuzione utilizzando il docker pscomando e vedere tutti i contenitori che non sono stati cancellati ma sono usciti prima di utilizzare il docker ps -acomando.

Immagina che ci sia un contenitore con l'id contenitore 8e35276e845e. Puoi usare il comando docker rm 8e35276e845eo docker rm 8e3per terminare il contenitore. Si noti che le prime 3 stringhe sono l'id di quel particolare ID contenitore docker. Pertanto, secondo lo scenario di cui sopra 8e3 è l'id di 8e35276e845e .

  • Se il riavvio non funziona, puoi provare a cambiare le porte dei servizi nel file docker-compose.yml e in base alla porta apache devi cambiare la porta del v-host (se presente). Questo risolverà il tuo problema.

Ex:

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

dovrebbe essere cambiato in

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

e anche il particolare v-host deve essere cambiato,

Ex (secondo lo scenario sopra):

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

Questo ti aiuterà a risolvere il problema sopra.


0

Per molti utenti di Windows che hanno lo stesso problema, suggerirei di riavviare anche il computer, perché il più delle volte (almeno per me) il riavvio di Docker non funziona. Quindi, suggerirei di seguire i seguenti passi:

  1. Riavvia il PC.
  2. Quindi avvia PowerShell come amministratore ed esegui questo:

    Set-NetConnectionProfile -interfacealias "vEthernet (DockerNAT)" -NetworkCategory Private

  3. Dopodiché riavvia il Docker.

Dopo aver completato questi passaggi sarai in grado di eseguire senza problemi. Spero che aiuti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.