Compose: «Le pilote n'a pas réussi à programmer la connectivité externe sur le point final» (1.7.0-rc1)

Créé le 6 avr. 2016  ·  278Commentaires  ·  Source: docker/compose

Je suis presque sûr que cela fonctionnait sur docker-compose 1.7.0-rc1 avant d'installer la dernière version bêta de Docker pour Mac, qui a été mise à niveau vers docker 1.11.0-rc3. J'essaie de faire fonctionner le service socat sur le port 172.17.0.1:8123, afin qu'il soit disponible pour les versions de docker. Mon vrai yml utilise une variable d'environnement pour l'adresse IP, mais cela se produit même lorsqu'il est codé en dur.

ERROR: for socat_httpcache  driver failed programming external connectivity on endpoint test_socat_httpcache_1 (5d973ed559d63a5561b715248f797a336915a44960b5e32e622ac8349b16e5d2): Error starting userland proxy: failed to bind port: Unix.Unix_error(Unix.EADDRNOTAVAIL, "bind", "")
version: '2'
services:
  httpcache:
    restart: always
    image: clue/polipo
    command: proxyAddress=0.0.0.0 allowedClients=0.0.0.0/0 disableIndexing=false disableServersList=false
    mem_limit: 500m
    memswap_limit: 500m
    volumes:
      - /var/cache/polipo

  socat_httpcache:
    restart: always
    hostname: POLIPO1
    image: bobrik/socat
    mem_limit: 50m
    command: TCP-LISTEN:8123,fork,reuseaddr TCP:httpcache:8123
    depends_on:
      - httpcache
    ports:
      - "172.17.0.1:8123:8123"

verbose.txt

arenetworking

Commentaire le plus utile

Veuillez arrêter d'envoyer +1, car il envoie du spam dans toutes les boîtes de réception des abonnés Utilisez les émoticônes (smiley à droite de chaque commentaire) ou au moins donnez votre configuration complète, les numéros de version, etc. THX

Tous les 278 commentaires

@jamshid
Pouvez-vous poster le o / p de sudo netstat -nlp | grep 8123 . Merci.

Mon mac dit que -p nécessite un argument, donc je pense que c'est ce que vous voulez:

$ sudo netstat -nl -p tcp  | grep 8123
(nothing)
$ sudo netstat -nl -p tcp  | head    # to confirm mac output is what you expect
Active Internet connections
Proto Recv-Q Send-Q  Local Address          Foreign Address        (state)    
tcp4       0      0  192.168.2.4.52918      216.58.194.34.80       ESTABLISHED
tcp4       0      0  192.168.2.4.52917      23.199.236.147.80      ESTABLISHED
tcp4       0      0  192.168.2.4.52916      192.229.163.25.443     ESTABLISHED
tcp4       0      0  192.168.2.4.52915      192.229.163.175.80     ESTABLISHED
...
$ docker ps -a | grep 8123
7baf5b2ec0eb        clue/polipo               "polipo proxyAddress="   26 minutes ago      Up 12 minutes                  8123/tcp            test_httpcache_1
3fea15e3d5b4        clue/polipo               "polipo proxyAddress="   33 minutes ago      Up 19 minutes                  8123/tcp            buildenv_httpcache_1

La même chose m'arrive.

J'obtiens le même problème lors du redémarrage à l'aide de docker-compose up. Dans mon cas, c'est un service proxy nginx qui ne démarre pas. Doit être lié à la version bêta de Docker pour Mac. Cela a commencé après avoir installé la version bêta et ne s'est pas produit après le retour à Virtualbox.

docker-compose version 1.7.0, build 0d7bf73
Docker version 1.11.0, build 4dc5990

Je rencontre la même erreur lorsque j'essaye de démarrer ma pile en utilisant docker-compose. Tous les conteneurs démarrent correctement sauf un (consul). J'obtiens cette erreur

ERROR: for consul driver failed programming external connectivity on endpoint devas_consul_1 (6ceba32c51cb70b354f 2f4b68d173ca97a65d6a0bfd308d3137e2a7069abd1b6): Error starting userland proxy: Failed to bind: EADDRNOTAVAIL

Je suis sûr que cela a quelque chose à voir avec ma version bêta de docker pour mac.

docker-compose -v docker-compose version 1.7.0, build 0d7bf73

J'utilise la dernière version bêta de Docker pour Mac

»
version docker
Client:
La dernière version: 1.11.1
Version de l'API: 1.23
Version Go: go1.5.4
Commit Git: 5604cbe
Construit: mer 27 avril 00:34:20 2016
OS / Arch: darwin / amd64

Serveur:
La dernière version: 1.11.1
Version de l'API: 1.23
Version Go: go1.5.4
Commit Git: 8b63c77
Construit: ven 29 avril 14:13:26 2016
OS / Arch: linux / amd64
»

Suite au message ci-dessus, j'obtiens Error starting userland proxy: Failed to bind: EADDRINUSE.
Je ne sais pas où se situe le conflit là où il n'en existait pas auparavant

Comment "libérer" le port en cours d'utilisation pour que compose puisse à nouveau afficher le conteneur? La première fois que c'est arrivé, j'ai attendu une minute environ et cela a fonctionné à la deuxième tentative. Deuxième fois, ça fait environ une heure. Docker compose kill, down, rm --all, etc. et quelque chose a toujours une emprise dessus.

Je découvre de quoi il s'agit, le conteneur (consul) à l'origine du problème a ce port obligatoire 172.17.0.1:53:8600/udp . Je l'ai remplacé par 53:8600/udp et cela fonctionne maintenant. Je n'ai pas encore compris pourquoi la première liaison ne fonctionne pas. BTW, comment puis-je connaître l'adresse IP du pont?

Bonjour, j'ai eu le même problème avec Docker version 1.11.1 sur Mac OSX.
ERROR: for nginx driver failed programming external connectivity on endpoint managercentralapp_nginx_1 (e11d19ee8f486a2e12c9c87802dca7ea5f541f026645f69e338e94732ac1eb56): Error starting userland proxy: Failed to bind: EADDRINUSE

Je reçois aussi cela après la mise à niveau vers Docker 1.12-rc2, je ne sais pas si c'est le bon endroit pour publier cela.

Client:
 Version:      1.12.0-rc2
 API version:  1.24
 Go version:   go1.6.2
 Git commit:   906eacd
 Built:        Fri Jun 17 20:35:33 2016
 OS/Arch:      darwin/amd64
 Experimental: true

Server:
 Version:      1.12.0-rc2
 API version:  1.24
 Go version:   go1.6.2
 Git commit:   906eacd-unsupported
 Built:        Fri Jun 17 21:12:28 2016
 OS/Arch:      linux/amd64
 Experimental: true

Erreur complète:

Error response from daemon: driver failed programming external connectivity on endpoint xxx_xxx_1 (xxx): Bind for 0.0.0.0:2224 failed: port is already allocated

netstat:

tcp6       0      0 :::2224                 :::*                    LISTEN      9083/docker-proxy

Je vois cela de façon sporadique. Une nouvelle tentative de commande après une minute "résout" généralement le problème.
C'est après avoir migré hier vers Docker pour Mac.

$ docker version
Client:
 Version:      1.12.0-rc2
 API version:  1.24
 Go version:   go1.6.2
 Git commit:   906eacd
 Built:        Fri Jun 17 20:35:33 2016
 OS/Arch:      darwin/amd64
 Experimental: true

Server:
 Version:      1.12.0-rc2
 API version:  1.24
 Go version:   go1.6.2
 Git commit:   a7119de
 Built:        Fri Jun 17 22:09:20 2016
 OS/Arch:      linux/amd64
 Experimental: true

J'ai aussi eu la même erreur que vous les gars. Je pensais que c'était parce que nginx liait des ports qui étaient déjà occupés, mais je ne le pense pas maintenant. Quelqu'un a-t-il trouvé des solutions à cela? :)

+1 Même erreur sur mac

Cela s'est produit après un passage à Docker for Mac , mais après avoir arrêté et supprimé Tous les conteneurs après le déplacement, redémarrage du docker, recréation du conteneur, etc.

Je l'ai eu à nouveau aujourd'hui après une mise à jour de Docker for Mac , mais en répétant le scénario ci-dessus corrigé. Je suppose que le port (et «d'autres» choses) que j'attribue à des conteneurs particuliers n'est pas libéré tant qu'il n'est pas complètement nettoyé.

par exemple:

ERROR: for nginx driver failed programming external connectivity on endpoint dev_nginx (4c340c55f7402c7b265803ea64541ebdf8613f4b43dfa816001d27bdc4f513b3): Error iptables FORWARD: Another app is currently holding the xtables lock; waiting (1s) for it to exit... ERROR: Encountered errors while bringing up the project.

+1 ont le même problème sur mac

@TuningGuide MacBook Pro (15 pouces, fin 2011), Intel Core i7 2,2 GHz, 8 Go de mémoire DDR3 à 1333 MHz
Exécution de Node 4.4.7 étendu pour prendre en charge Ember CLI. La configuration est ci-dessous:

FROM node:4.4.7

# expose ember-cli ports
EXPOSE 4200 35729 49152

# install ember-cli dependencies
RUN npm install -q -g ember-cli
RUN npm install -q -g bower
RUN npm install -q -g phantomjs-prebuilt

# install watchman
# http://ember-cli.com/user-guide/#watchman
RUN \
  git clone https://github.com/facebook/watchman.git &&\
  cd watchman &&\
  git checkout v3.5.0 &&\
  ./autogen.sh &&\
  ./configure &&\
  make &&\
  make install

Ran avec le volume monté des fichiers ember-cli en utilisant 'ember serve' comme commande.

+1 même problème sur le mac avec docker pour mac

Veuillez arrêter d'envoyer +1, car il envoie du spam dans toutes les boîtes de réception des abonnés Utilisez les émoticônes (smiley à droite de chaque commentaire) ou au moins donnez votre configuration complète, les numéros de version, etc. THX

➜  ~ docker info
Containers: 2
 Running: 0
 Paused: 0
 Stopped: 2
Images: 2
Server Version: 1.12.0-rc3
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 21
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: null host bridge overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: seccomp
Kernel Version: 4.4.14-moby
Operating System: Alpine Linux v3.4
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 1.954 GiB
Name: moby
ID: GZAT:26TX:PYCM:KKNA:JSWY:AMEL:RQYI:O23B:QGSQ:WBVB:3Q7E:XDPJ
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): true
 File Descriptors: 18
 Goroutines: 30
 System Time: 2016-07-08T17:41:26.03558348Z
 EventsListeners: 1
No Proxy: *.local, 169.254/16
Registry: https://index.docker.io/v1/
Experimental: true
Insecure Registries:
 127.0.0.0/8
➜  ~ cat docker-compose-local.yml
version: '2'
services:
  cache:
    image: redis
    command: redis-server --appendonly yes
    ports:
      - "6379:6379"
  db:
    image: postgres:9.4
    ports:
      - "5432:5432"
    volumes:
      - ./tmp/dump.gz:/tmp/dump.gz
      - ./tmp/dump.sh:/docker-entrypoint-initdb.d/dump.sh
    environment:
      POSTGRES_DB: dbname
      POSTGRES_USER: dbuser
      POSTGRES_PASSWORD: dbpass

Vous avez les prochaines erreurs:

ERROR: for cache  driver failed programming external connectivity on endpoint carsaver_cache_1 (253054ef6864bdcb5377bd1690173fa352021d505dc05c3aafecf66b02c0b73d): Error starting userland proxy: write /port/tcp:0.0.0.0:6379:tcp:172.18.0.2:6379/ctl: errno 526

ERROR: for db  driver failed programming external connectivity on endpoint carsaver_db_1 (8a5990bd06a50d87c7db96de84367bb01b71c971d5a4b9e578fea7d75d893d59): Error starting userland proxy: write /port/tcp:0.0.0.0:5432:tcp:172.18.0.3:5432/ctl: errno 526
ERROR: Encountered errors while bringing up the project.

Solution trouvée pour les personnes avec la même erreur que celle indiquée ci-dessus.
J'utilisais auparavant Docker Toolbox, mais je n'ai pas supprimé Virtualbox. Il utilisait mes ports donc je ne peux pas démarrer. Après avoir supprimé VirtualBox, docker-compose fonctionné à merveille.

@aanand @dnephin s'il vous plaît, ajoutez à Getting Started un avertissement comme expliqué ci-dessus.

@miraage heureux d'apprendre que vous avez résolu votre problème.
Je n'avais pas vos données de volume + dump.sh mais j'ai fait une composition rapide sans problèmes:

Creating driverfailed_cache_1
Creating driverfailed_db_1
Attaching to driverfailed_cache_1, driverfailed_db_1

@jamshid Pourquoi spécifiez-vous une adresse IP pour socat (vous ne la connaissez pas)? Comment l'utilisez-vous?
Faire un docker-compose up sans l'adresse IP, je n'ai aucun problème:

Creating socat_httpcache_1
Creating socat_socat_httpcache_1
Attaching to socat_httpcache_1, socat_socat_httpcache_1
docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
f2e3b3767982        bobrik/socat        "socat TCP-LISTEN:812"   2 seconds ago       Up 1 seconds        0.0.0.0:8123->8123/tcp   socat_socat_httpcache_1
43dbd35629e0        clue/polipo         "polipo proxyAddress="   3 seconds ago       Up 2 seconds        8123/tcp                 socat_httpcache_1

Si votre objectif est que votre http_cache communique avec le conteneur socat, pourquoi ne pas les mettre sur le même réseau et en finir avec lui?

version: '2'
services:
  httpcache:
    restart: always
    image: clue/polipo
    command: proxyAddress=0.0.0.0 allowedClients=0.0.0.0/0 disableIndexing=false disableServersList=false
    mem_limit: 500m
    memswap_limit: 500m
    volumes:
      - /var/cache/polipo
    networks:
      - socatnet

  socat_httpcache:
    restart: always
    hostname: POLIPO1
    image: bobrik/socat
    mem_limit: 50m
    command: TCP-LISTEN:8123,fork,reuseaddr TCP:httpcache:8123
    depends_on:
      - httpcache
    networks:
      - socatnet
networks:
  socatnet:

Eh bien, j'utilise le moteur docker 1.11.2 dans centos7 dans un flux de construction / intégration continue pour automatiser les tests et pour autant que je sache, finalement cette erreur apparaît même si aucun conteneur n'est en cours d'exécution (lors du redéploiement d'une version spécifique de l'ensemble de la pile de services). Cela semble également lié au fait que parfois le moteur de docker obtient une erreur lors de la tentative de nettoyage après la suppression des conteneurs en cours d'exécution, et certaines règles iptables peuvent être maintenues en allouant des ports réseau pour une raison quelconque, peut-être liée à https://github.com/ docker / docker / issues / 23371 # issuecomment -229982105 - mais je n'en suis toujours pas sûr.

J'ai eu à peu près le même problème, avec Docker pour Mac, exécutant le conteneur postgresql. Donc, pour moi, cela a été causé par postgres fonctionnant sur le même port sur le système hôte que le port spécifié dans mon fichier de configuration de composition. Chose assez évidente, mais pourrait être utile pour quelqu'un, je suppose.
Merci pour cet outil cool. 👍

J'ai eu un problème similaire dans Docker pour Mac exécutant le conteneur nginx, mon port 80 était utilisé par apache (natif). J'ai utilisé telnet et netstat pour voir le service en cours d'exécution.

Pour moi, c'était du calmar, j'ai arrêté le calmar et je ne l'ai plus vu. Je pense donc que cela peut avoir à voir avec tout ce qui prend le port et si nous obligons docker à cartographier ce port.

Identique ici à @marcosalberto et autres. Le message sur lequel j'essayais de monter postgres était déjà utilisé. Je viens de changer de port et les choses ont très bien fonctionné.

sur osx, le serveur Web Apache intégré peut fonctionner sur les ports 80/443. Vérifier:
ps -ef | grep httpd

Pour le désactiver:
arrêt sudo apachectl

Oui, cela fonctionne pour moi. J'ai OS X sans apache activé, mais quelques jours après, j'ai utilisé ce site Web: https://coolestguidesontheplanet.com/upgrade-php-on-osx/ pour la mise à jour de PHP.

Après ce script

curl -s http://php-osx.liip.ch/install.sh | bash -s 5.6

recommandé pour la mise à jour de php apache a été activé et j'ai été surpris par mes conteneurs.

Lorsque nous voulons "mettre à jour php", nous ne voulons pas "activer apache", mais le site Web ci-dessus a la première position dans le google :(

Bon dockering!

Parfois, docker-compose ne parvient pas à démarrer le conteneur souhaité et laisse le port occupé par un processus en écoute .. alors essayez de lister tous les ports (en écoute) en utilisant

lsof -nP +c 15 | grep LISTEN

# outputs
Dropbox             384  IPv4 0x82c      TCP 127.0.0.1:17600 (LISTEN)
com.docker.slirp   6218  IPv4 0x82c      TCP *:5432 (LISTEN) <<<MOSTLY THE PROBLEM
Python             6268  IPv4 0x82c      TCP 127.0.0.1:51617 (LISTEN)

# then kill the com.docker.slirp process id if it's the one causing the problem
kill -9 6218

METTRE À JOUR:
J'ai également pu reproduire ce problème (plusieurs fois) ... démarrer un service localement qui écoute le port XXX et démarrer un conteneur qui expose le même port XXX ...
il échouera à exécuter docker-compose up et le processus com.docker.slirp ne sera pas tué, ce qui persistera jusqu'à ce que le processus com.docker.slirp tué manuellement (j'ai même ajouté un alias pour le faire alias portfix='pkill com.docker.slirp' )

+1 sur Mac

@ mad-raz super contournement! Merci!

Eu le même genre d'erreur
Error starting userland proxy: write /port/tcp:0.0.0.0:80:tcp:172.17.0.5:80/ctl: errno 526

C'était nginx pour moi.
J'ai dû tuer le nginx pour le contourner sudo nginx -s stop

+1 ici aussi.

J'ai essayé la solution de contournement suggérée par @ mad-raz, et cela a effacé toutes les réservations, mais elles reviennent après quelques secondes. On dirait que le processus com.docker.slirp est ré-engendré par un service de surveillance. En conséquence, l'erreur apparaît sur le prochain docker-compose up.

driver failed programming external connectivity on endpoint ... Bind for 0.0.0.0:9086 failed: port is already allocated

docker-compose version 1.8.0-rc2, build c72c966

Après l'arrêt de Docker pour Mac, ces processus restent.
% ps -ef | grep docker !10007 0 1086 1 0 Tue03PM ?? 0:00.01 /Library/PrivilegedHelperTools/com.docker.vmnetd 648074730 30807 1 0 1:49PM ?? 0:00.07 /Applications/Docker.app/Contents/MacOS/com.docker.osx.hyperkit.linux -watchdog fd:0 648074730 30808 30807 0 1:49PM ?? 0:00.03 /Applications/Docker.app/Contents/MacOS/com.docker.osx.hyperkit.linux -watchdog fd:0 648074730 30810 30807 0 1:49PM ?? 0:02.08 com.docker.db --url=file:///Users/astone/Library/Containers/com.docker.docker/Data/s40 --git /Users/astone/Library/Containers/com.docker.docker/Data/database

+1 sur mac :(

Une solution de contournement en désinstallant le docker à partir du menu de la barre supérieure (icône Docker> Préférences> Désinstaller) et en le réinstallant :(

Merci @ alexander-emelyanov!
J'ai soudainement eu cette erreur en exécutant docker-compose up -d pour mon projet sous OS X et je n'ai pas fait la relation avec le fait que j'avais installé PHP 7 sur mon Mac (pour que les vérifications de syntaxe SublimeText fonctionnent correctement) avec les scripts Liip le même jour.

C'était en effet dû au démarrage d'Apache sur mon Mac, et je devais juste l'arrêter.

J'ai un problème avec l'exécution de postgres. J'ai vérifié que postgres ne fonctionnait pas sur ma machine hôte avec brew services stop postgres . J'ai couru lsof -i :5432 et j'ai obtenu la sortie suivante:

image

Docker exécute-t-il postgres pour quelque chose d'interne? Lorsque j'ai tué le processus avec SIGINT, l'icône de la barre d'état du docker a commencé à rouler et il a redémarré le service. La seule façon de le faire fonctionner était de changer le port hôte dans mon fichier docker-compose.

Lisez il y a une solution de contournement expliquant exactement cela https://github.com/docker/compose/issues/3277#issuecomment -232505775

@ mad-raz Lors de la suppression du processus, Docker (pour Mac) redémarre automatiquement et les mêmes ports sont à nouveau utilisés quelques secondes après ...

J'ai fini par réinitialiser Docker (et donc supprimer tous les conteneurs), et cela a fonctionné à nouveau, tous les ports étant libérés 😕

Ce problème est en réalité deux problèmes:

  1. Il y a un message d'erreur déroutant lorsqu'un port est déjà utilisé par une autre application (par exemple Apache). Cela a été corrigé dans Docker 1.12.0 (il dit maintenant explicitement "le port est déjà alloué").
  2. Après l'arrêt des conteneurs, les ports qu'ils utilisent sont parfois encore mappés sur localhost .

Quelqu'un rencontre-t-il toujours un problème? 2 après la mise à niveau de Docker pour Mac vers la dernière version ( 1.12.0 , ou 1.12.0-beta21 si vous êtes sur le canal bêta)?

Je reçois toujours ce problème.
Docker v1.12, Docker Compose v1.8.

Vous avez un service nginx qui ne démarre tout simplement pas, ainsi que divers autres qui échouent parfois:

ERROR: for nginx  Cannot start service nginx: driver failed programming external connectivity on endpoint test_nginx_1 (3f72f35baab64b37c667a4a98e9b8c4adc312e2df7a16c80030536101c695546): Bind for 0.0.0.0:80 failed: port is already allocated

J'ai essayé de redémarrer, d'arrêter tout le projet et de recréer, mais rien ne fonctionne.

Sortie de sudo netstat -tulpn | grep 80 :

tcp6       0      0 :::80                   :::*                    LISTEN      3455/dockerd

Informations Docker:

Containers: 30
 Running: 30
 Paused: 0
 Stopped: 0
Images: 89
Server Version: 1.12.0
Storage Driver: btrfs
 Build Version: Btrfs v4.4
 Library Version: 101
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge null host overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: apparmor seccomp
Kernel Version: 4.4.0-31-generic
Operating System: Ubuntu 16.04.1 LTS
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 9.765 GiB
Name: apps
ID: 7WCN:K7EU:M6IO:NPF2:UK2W:HBKO:MUSD:V7FC:RNWU:3FSA:BNAR:TZEH
Docker Root Dir: /mnt/storage/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
Insecure Registries:
 127.0.0.0/8

Version:

Client:
 Version:      1.12.0
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   8eab29e
 Built:        Thu Jul 28 22:11:10 2016
 OS/Arch:      linux/amd64

Server:
 Version:      1.12.0
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   8eab29e
 Built:        Thu Jul 28 22:11:10 2016
 OS/Arch:      linux/amd64

Il est à noter que mon projet de composition contient 29 services.

De plus, il est étrange que lorsque Docker s'accroche au port 80 sans raison, je ne puisse pas me connecter au port 80 depuis un autre hôte. Lorsque le port 80 est légitimement utilisé par un conteneur, le port 80 est facilement accessible de l'extérieur.

l'une des causes de ce problème est de ne pas configurer docker-compose.yml si le port n'est pas utilisé en dehors des conteneurs, il devrait être expose: d au lieu de ports: ed
car l'utilisation de ports expose le port à la fois aux autres conteneurs de services et à la machine hôte ... tandis que expose expose uniquement le port aux autres conteneurs de services (sans interférer avec les mappages de ports hôtes) ...

Mon problème n'est pas un problème de configuration (du moins je ne pense pas que ce soit le cas).
Je peux redémarrer le démon Docker et redémarrer tous mes conteneurs et à chaque fois, ce seront différents conteneurs qui échoueront avec l'erreur. Semble être un bogue dans Docker accroché aux ports, il ne devrait pas l'être.

Dans mon cas ci-dessus avec nginx, même si je supprime le conteneur nginx et redémarre le démon docker, docker écoute toujours sur les ports 80 et 443: /

J'ai donc réussi à résoudre mon problème. Idéalement, je ne voulais pas désinstaller Docker car je veux conserver toutes mes images, j'en ai pas mal téléchargé! Au lieu de cela, j'ai supprimé tous mes réseaux personnalisés, supprimé tous mes conteneurs, puis supprimé docker/network/files/local-kv.db et redémarré ma machine.

Il semble que quelque chose en interne dans Docker a été cassé dans ce fichier et a persisté, et il n'y avait aucun moyen de l'effacer ou de le réparer. C'est probablement parce que j'ai commencé avec la version 1.11, puis j'ai parcouru toutes les versions 1.12 et je suis maintenant sur 1.12, alors peut-être que quelque chose le long du chemin de mise à niveau l'a cassé.

Maintenant, cela semble fonctionner correctement 😄
J'ai l'ancien fichier local-kb.db enregistré si quelqu'un de l'équipe Docker souhaite y jeter un coup d'œil si cela peut être utile. Pour récapituler, le problème était que le démon écoutait sur les ports 80 et 443 même s'il n'y avait aucun conteneur à l'écoute sur ces ports.

J'ai le même problème. Supprimé tous les conteneurs, réseau et local-kv.db + redémarrer ... maintenant cela fonctionne à nouveau.

Cela se produit également avec docker 1.12.0, docker-compose 1.8 et swarm 1.2.4 sur ubuntu. Utilisation de consul pour kv. échec de la jonction de point final sur le réseau GW: le pilote n'a pas réussi à programmer la connectivité externe sur la passerelle de point final. Le conteneur dans lequel l'erreur se produit reste dans un état créé jusqu'à ce que vous le nettoyiez.

Même erreur sur Debian:

# docker version
Client:
 Version:      1.12.1
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   23cf638
 Built:        Thu Aug 18 05:02:53 2016
 OS/Arch:      linux/amd64

Server:
 Version:      1.12.1
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   23cf638
 Built:        Thu Aug 18 05:02:53 2016
 OS/Arch:      linux/amd64
# docker-compose up -d
Starting elk_elk_1

ERROR: for elk  driver failed programming external connectivity on endpoint elk_elk_1 (8b8bb61b786bd1e07fa83c39a14338cab6c594cdfe74890c36e32ed9de33d8d9): Bind for 0.0.0.0:12201 failed: port is already allocated
# netstat -nl -p tcp  | grep 12201
udp6       0      0 :::12201                :::*                                14055/docker-proxy

même erreur sur ubuntu 16.04LTS.

version docker
Client:
La dernière version: 1.12.1
Version de l'API: 1.24
Version Go: go1.6.3
Commit Git: 23cf638
Construit: jeu 18 août 05:33:38 2016
OS / Arch: linux / amd64

Serveur:
La dernière version: 1.12.1
Version de l'API: 1.24
Version Go: go1.6.3
Commit Git: 23cf638
Construit: jeu 18 août 05:33:38 2016
OS / Arch: linux / amd64

version docker-compose
docker-compose version 1.7.1, build 0a9ab35
version docker-py: 1.8.1
Version CPython: 2.7.9
Version OpenSSL: OpenSSL 1.0.1e 11 février 2013

Étape 3: RUN rm /etc/nginx/conf.d/default.conf
---> Utilisation du cache
---> 18fabfe71380
Étape 4: AJOUTER default.conf /etc/nginx/conf.d/
---> Utilisation du cache
---> ad8c17a883c9
Ad8c17a883c9 construit avec succès
Création de uauth_fpm_1
Création de uauth_redis_1
Création de uauth_web_1

ERREUR: pour le pilote Web, la programmation de la connectivité externe a échoué sur le point de terminaison uauth_web_1 (1a1e10881709d37b7b242f43dca561802ddf19d67f713cfd05eb2cdae3c4b0c0): échec de la liaison pour 0.0.0.0:443: le port est déjà alloué
Traceback (dernier appel le plus récent):
Fichier "", ligne 3, dans
Fichier "compose / cli / main.py", ligne 63, dans main
AttributeError: l'objet 'ProjectError' n'a pas d'attribut 'msg'
docker-compose a renvoyé -1

suivez la méthode de madjam002 pour résoudre ce problème.

  1. docker rm -f tous les conteneurs.
  2. interfaces réseau rm réseau docker.
  3. sudo rm /var/lib/docker/network/files/local-kv.db
    et redémarrer, cela a fonctionné. merci les copains.

Je ne trouve pas le fichier /var/lib/docker/network/files/local-kv.db . Où puis-je trouver le fichier souch? J'utilise El Capitan 10.11.4 et Docker pour Mac 1.12.

@ tsantos84 Docker s'exécutera dans une VM lorsque vous utilisez Docker pour Mac.

Essayez ce qui suit (je n'ai pas testé cela cependant):

  • docker rm -f $(docker ps -aq) (supprimera tous vos conteneurs)
  • docker network rm $(docker network ls -q) (supprimera tous vos réseaux)
  • docker run --rm -v /var/lib/docker/network/files:/network busybox rm /network/local-kv.db

Ensuite, redémarrez Docker pour Mac et vous devriez être prêt à partir 👍

Ou, vous pouvez vous connecter à la VM xhyve, en:

screen -AmdS docker ~ / Library / Containers / com.docker.docker / Data / com.docker.driver.amd64-linux / tty
écran -S docker -p 0 -X trucs
écran -r docker
rm -f /var/lib/docker/network/files/local-kv.db
écran -S docker -X quitter

Chez @aanand, je rencontre toujours le problème no. 2, c'est-à-dire après l'arrêt des conteneurs, les ports qu'ils utilisent sont parfois encore mappés sur localhost.
Je suis sur Ubuntu 14.04 et la version docker: 1.12.0

L'exécution de docker-compose up après avoir arrêté et supprimé des conteneurs génère l'erreur ci-dessous pour l'image officielle postgresql:

 ERROR: for db  Cannot start service db: driver failed programming external connectivity on endpoint postgres (a0edc4146637dea0b4641f06f74a38be7977259142136faee2bd0f0e8f7d6a36): Bind for 0.0.0.0:5432 failed: port is already allocated
 ERROR: Encountered errors while bringing up the project.

Voici ce que montre netstat:

 sudo netstat -nlp | grep 5432

 tcp6       0      0 :::5432     :::*    LISTEN

Le correctif @ mad-raz pour mac ne fonctionnait pas pour moi sur Ubuntu. A quelque chose à résoudre sur Ubuntu

@mankind Avez-vous essayé l'un de mes correctifs mentionnés ci-dessus?

@ madjam002 oui sauf la dernière ligne, c'est-à-dire que je n'ai pas exécuté docker run --rm -v / var / lib / docker / network / files: / network busybox rm /network/local-kv.db parce que vous avez dit que vous n'avez pas ' J'ai testé cela et je ne sais pas quelles seront les implications de la suppression de tous ces fichiers, donc je ne les ai pas supprimés parce que je veux voir si je peux résoudre ce problème sans supprimer et réinstaller docker à partir de zéro.

@mankind C'est la dernière ligne qui effectuera réellement le correctif. L'exécution de la commande supprimera tous vos réseaux de Docker, ce qui est une opération destructrice, mais c'est le seul moyen que je connaisse pour résoudre ce problème. C'est exactement la même commande que ce que j'ai publié plus tôt dans ce fil, la seule différence étant que vous l'exécutez dans un conteneur Docker au lieu de sur l'hôte.

Pour clarifier, vous devrez supprimer tous vos conteneurs et exécuter la commande qui supprimera tous vos réseaux, mais vous conserverez vos images Docker si c'est ce qui vous inquiète.

@ madjam002 merci pour cette clarification.

J'ai eu la même erreur que celle décrite par de nombreuses personnes dans ce fil; cependant mon problème / solution était différent de tout le monde.

J'utilise docker-machine sur mon mac. J'ai plusieurs projets qui utilisent docker. J'utilise une machine et j'utilise simplement docker-compose par projet pour démarrer mes conteneurs dans cette machine. Le problème que j'ai trouvé était que j'essayais de démarrer mes conteneurs pour un projet (projet b), mais des conteneurs pour un autre projet (projet a) fonctionnaient pour une raison quelconque (je ne sais pas pourquoi).

Plus précisément, je recevais des erreurs que je ne pouvais pas lier aux ports 80 et 3306 parce que lorsque je démarrais les conteneurs du projet b, le projet a était déjà en cours d'exécution et se liait à ces ports.

Je viens d'utiliser docker ps -a pour vérifier que d'autres conteneurs étaient en cours d'exécution et déjà liés à ces ports. L'arrêt de ces conteneurs a résolu le problème pour moi.

Le principal problème que je vois ici est que ces conteneurs du projet continuent de démarrer sans que je les démarre réellement.

J'espère que cela aide quelqu'un d'autre avec ce problème.

Le même problème a été résolu en arrêtant une autre application sur le même port, vérifiez que l'application utilise votre port avec netstat -anp | grep PORT (remplacez PORT par celui que vous utilisez) ou utilisez un port différent. Cela a réglé pour moi.
J'espère que cela aidera n'importe qui.

@ragboyjr peut-être avez-vous commencé le projet a conteneurs avec docker-compose up -d et avez restart: always sur vos fichiers de composition.

@ madjam002 Merci pour cette correction! cela me dérange depuis quelques mois sur Docker pour Mac, j'ai dû recourir à la réinitialisation aux paramètres d'usine, mais l'exécuter conjointement avec le redémarrage de xhyve vm a à nouveau libéré ces ports.

Utiliser docker pour mac, dans mon cas, supprimer tous les conteneurs et tuer le processus docker occupant les ports ne suffisait pas à résoudre le problème. J'ai également dû supprimer les réseaux associés à ces ports.

arrêter et supprimer les conteneurs Docker:
docker stop $(docker ps -a -q); docker rm $(docker ps -a -q); docker volume rm $(docker volume ls -qf dangling=true)

supprimer les réseaux problématiques:
docker network rm(docker network ls -q)

découvrir quel processus occupe le port
lsof -nP | grep LISTEN

examinez la sortie de la dernière commande et tuez le processus occupant le port (voir le post de @ mad-raz sur la façon de procéder). Suivre ces étapes a résolu le problème pour moi.

@marcelmfs vous avez absolument raison! merci beaucoup pour ça.

+1 même ici, le redémarrage de Docker pour Mac corrige le problème

Docker pour Windows vient de me dire de mettre à jour, donc je l'ai fait. Maintenant, mes conteneurs ne démarrent pas. Nouveau redémarrage, nouveau redémarrage de Docker, aucun conteneur en cours d'exécution. La base de données ne démarre pas:

~Réponse d'erreur du démon: le pilote n'a pas réussi à programmer la connectivité externe sur la base de données du point de terminaison (44309324c7301ee0bba984b7bfee01201939c809b98f3d10333258d09d243931): Erreur lors du démarrage du proxy userland: échec de la liaison pour 0.0.0.0:3306: le port est déjà allouéErreur: échec du démarrage des conteneurs: db~

D4W version 1.13.0 (9795)

Off pour rechercher comment installer l'ancienne version.

J'ai le même problème

# docker-compose -f /etc/docker/docker-compose.yml up -d
Creating influxdb1

ERROR: for influxdb  Cannot start service influxdb: driver failed programming external connectivity on endpoint influxdb1 (a5ebc95f32f72421ae46eb5bdc4e2fbf0c10f43da61188cb75d1322546111c1a): Bind for 0.0.0.0:8086 failed: port is already allocated
ERROR: Encountered errors while bringing up the project.
# docker version
Client:
 Version:      1.13.1
 API version:  1.26
 Go version:   go1.7.5
 Git commit:   092cba3
 Built:        Wed Feb  8 06:50:14 2017
 OS/Arch:      linux/amd64

Server:
 Version:      1.13.1
 API version:  1.26 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   092cba3
 Built:        Wed Feb  8 06:50:14 2017
 OS/Arch:      linux/amd64
 Experimental: false



md5-a7d154bb42b823b1b35a4de5ba377ae0



# docker-compose version
docker-compose version 1.11.1, build 7c5d5e4
docker-py version: 2.0.2
CPython version: 2.7.12
OpenSSL version: OpenSSL 1.0.2g  1 Mar 2016

Le redémarrage du service docker n'aide pas, la même chose avec le redémarrage de la machine hôte.

Ignorez simplement l'entrée précédente car c'était ma faute (faute de frappe)

J'ai le même problème (openSUSE 42.2). La suppression du fichier /var/lib/docker/network/files/local-kv.db a résolu le problème.

La suppression du fichier /var/lib/docker/network/files/local-kv.db et le redémarrage du docker ont également résolu ce problème pour moi sur Ubuntu

Nevermind, le problème est toujours là

pour moi, c'était du nginx. une fois que je l'ai arrêté, docker a de nouveau travaillé.

J'obtiens un problème similaire sur OSX avec un port UDP, la suppression de local-kv.db ne semble pas être une option car le port reste bloqué même lorsque le moteur / VM docker est arrêté mais qu'un redémarrage efface le port lié. Semble être un problème du côté OSX.

$ netstat -na|grep "\.53" <- pas de port udp 53 lié

$ docker run -p 53:53/tcp -p 53:53/udp --cap-add=NET_ADMIN --name dnsmasq -d andyshinn/dnsmasq:2.75

$ netstat -na|grep "\.53"
udp4 0 0 *.53 *.* <- ok, c'est maintenant lié

$ docker stop dnsmasq && sleep 2 && docker rm dnsmasq

$ netstat -na|grep "\.53"
udp4 0 0 *.53 *.* <- reste!

$ sudo lsof -i -n -P|grep ":53" <- pas de sortie!

$ netstat -tulnvp udp|grep 53
udp4 0 0 *.53 *.* 196724 9216 1307 0 <- ok nous avons un pid

$ sudo ps aux|grep 1307 <- pas de pid correspondant!

Un vieux processus "zombie" semble tenir le port mais je ne peux pas comprendre comment le libérer.

OSX 10.11.6

$ version docker
Client:
Version: 17.03.0-ce
Version de l'API: 1.26
Version Go: go1.7.5
Commit Git: 60ccb22
Construit: jeu.23 février 10:40:59 2017
OS / Arch: darwin / amd64

Serveur:
Version: 17.03.0-ce
Version de l'API: 1.26 (version minimale 1.12)
Version Go: go1.7.5
Commit Git: 3a232c8
Construit: Mar 28 Fév 07:52:04 2017
OS / Arch: linux / amd64
Expérimental: vrai

Je ne peux que confirmer que cela m'arrive également sur plusieurs conteneurs.
OSX
➜ ~ version docker
Client:
Version: 17.03.1-ce-rc1
Version de l'API: 1.27
Version Go: go1.7.5
Commit Git: 3476dbf
Construit: ven 17 mars 00:27:41 2017
OS / Arch: darwin / amd64

Serveur:
Version: 17.03.1-ce-rc1
Version API: 1.27 (version minimale 1.12)
Version Go: go1.7.5
Commit Git: 3476dbf
Construit: mer 15 mars 20:28:18 2017
OS / Arch: linux / amd64
Expérimental: vrai

Quelques fois, il s'est résolu lui-même avec une build docker-compose et une autre fois en redémarrant le processus docker.

+1 sur mac.
J'ai essayé de supprimer tous les conteneurs et de redémarrer Docker. Mais cela se reproduit.

Problème similaire sur Ubuntu 16.04.2 LTS, Docker version 17.04.0-ce, build 4845c56

$ docker run -p IP:80:3000 --link tribeca-mongo:mongo --name tribeca -d tribeca
29a0cac17720e203e4392b281460732dc5fe43c72e34bc7365760f8bba9dc348
docker: Error response from daemon: driver failed programming external connectivity on endpoint tribeca (54911841811bf7fb7b8b6b866eae2b790fe1b8b3bd18ccd0bb2089b565538c6c): Error starting userland proxy: listen tcp IP:80: bind: cannot assign requested address.

ubuntu même problème

Mac 10.12.3 même problème

Windows 10, même problème

Mac 10.12.3 (16D32), même problème
ERREUR: erreurs rencontrées lors de la mise en place du projet.

Windows 10, même problème

infos docker
Conteneurs: 4
Course à pied: 3
En pause: 0
Arrêté: 1
Images: 7
Version du serveur: 17.03.1-ce
Pilote de stockage: overlay2
Système de fichiers de sauvegarde: extfs
Prend en charge d_type: true
Diff. De superposition native: vrai
Pilote de journalisation: fichier json
Pilote Cgroup: cgroupfs
Plugins:
Volume: local
Réseau: pont hôte ipvlan macvlan superposition nulle
Essaim: inactif
Temps d'exécution: runc
Exécution par défaut: runc
Init Binaire: docker-init
version containerd: 4ab9917febca54791c5f071a9d1f404867857fcc
version runc: 54296cf40ad8143b62dbcaa1d90e520a2136ddfe
version init: N / A (attendu: 949e6facb77383876aeff8a6944dde66b3089574)
Options de sécurité:
seccomp
Profil: par défaut
Version du noyau: 4.9.13-moby
Système d'exploitation: Alpine Linux v3.5
OSType: linux
Architecture: x86_64
Processeurs: 4
Mémoire totale: 6,538 Gio
Nom: moby
ID: HVV7: ECOB: GSCQ : UHGE: MUHA : GVD5: KS3W: YVJ5: DJ5E: AJIM: OHMR : 344T
Répertoire racine Docker: / var / lib / docker
Mode de débogage (client): faux
Mode de débogage (serveur): vrai
Descripteurs de fichier: 36
Goroutines: 39
Heure système: 2017-05-11T09: 41: 16.7020554Z
ÉvénementsAuditeurs: 0
Registre: https://index.docker.io/v1/
Expérimental: vrai
Registres non sécurisés:
127.0.0.0/8
Miroirs de registre:
https://mhihpv4t.mirror.aliyuncs.com
Restauration en direct activée: faux

lancez simplement: docker run -d -p 3142:3142 --name blaName Bla_imageID
sans ip, puis exécutez docker container ls pour avoir son adresse IP, puis connectez-vous à elle.

Pour moi, ça marche! sur la nouvelle version de docker sur MAC

Pour ceux qui souhaitent spécifier une adresse spécifique

Créez votre réseau docker:
docker network create --subnet=172.18.0.0/16 mynet123

puis lancez simplement l'image (je prendrai ubuntu comme exemple)
docker run --net mynet123 --ip 172.18.0.22 -it ubuntu bash

Avait ce même problème sur Windows Docker + WSL et cet article a aidé à le résoudre:
https://www.mikeplate.com/2011/11/06/stop-http-sys-from-listening-on-port-80-in-windows/

c'est ce qui a finalement fonctionné pour moi sur mon mac:
sudo /usr/sbin/apachectl stop
vous pouvez alors dire que httpd n'est pas là en exécutant ps -ef | grep httpd

Même problème sous Windows 10. Résolu en redémarrant simplement Docker (le redémarrage de l'ordinateur ne fonctionnait pas).

J'ai redémarré docker et cela a fonctionné
sudo service docker stop
puis
sudo service docker start

Idem sur ubuntu 16.04 via docker-compose.
# docker -v Docker version 17.03.1-ce, build c6d412e

Le redémarrage du démon docker a fonctionné mais c'est un peu triste.

Ce problème est peut-être lié à libnetwork. J'ai fait un PR (https://github.com/docker/libnetwork/pull/1794). J'espère que cela peut être utile.

Cela m'est arrivé. Le mappage de port ne s'est pas affiché lorsque j'ai fait netstat -an sur une invite Elevated Powershell, bien que je n'ai pas essayé la même chose depuis la VM. J'ai dû redémarrer Docker pour Windows pour corriger. Cela recrée également la VM sous-jacente.

Cela peut être une chose évidente à essayer, mais j'ai eu cette erreur, mais j'ai redémarré Docker lui-même, puis j'ai démarré les conteneurs et l'erreur a disparu.

Même erreur - même remède - Redémarrez Docker sur Mac, puis relancez la commande et cela a fonctionné.

J'ai ce problème persistant sur notre système CI - les constructions "aléatoires" sont cassées, à cause de cette erreur. Cela fonctionnait bien il y a quelques semaines, puis il a commencé à apparaître au hasard. Le redémarrage de docker semble aider, mais c'est toujours une solution peu fiable pour un système CI.
Malheureusement, je n'ai aucune information sous la main quand cela a commencé à se produire, je soupçonne que j'ai mis à jour de "l'ancien" paquet docker pré-moby vers docker-ce , mais c'est juste une supposition maintenant

@ mad-raz Merci beaucoup pour la solution. J'ai passé des heures à le découvrir et ta réponse a fonctionné

Parfois, docker-compose ne parvient pas à démarrer le conteneur souhaité et laisse le port occupé par un processus à l'écoute. Essayez donc de lister tous les ports (d'écoute) en utilisant
lsof -nP + c 15 | grep ECOUTER
les sorties
Dropbox 384 IPv4 0x82c TCP 127.0.0.1:17600 (ÉCOUTER)
com.docker.slirp 6218 IPv4 0x82c TCP *: 5432 (ÉCOUTER) << Python 6268 IPv4 0x82c TCP 127.0.0.1:51617 (ÉCOUTER)
puis supprimez l'ID de processus com.docker.slirp si c'est celui qui cause le problème
tuer -9 6218

J'ai le même problème sur Mac 10.12.5 (16F73):

Version 17.03.1-ce-mac12 (17661)
Channel: stable
d1db12684b

Mais pas de problème pour la même image docker sous Linux:

Distributor ID: Ubuntu
Description:    Ubuntu 16.04.2 LTS
Release:    16.04
Codename:   xenial

Client:
 Version:      17.03.1-ce
 API version:  1.27
 Go version:   go1.7.5
 Git commit:   c6d412e
 Built:        Mon Mar 27 17:14:09 2017
 OS/Arch:      linux/amd64

Server:
 Version:      17.03.1-ce
 API version:  1.27 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   c6d412e
 Built:        Mon Mar 27 17:14:09 2017
 OS/Arch:      linux/amd64
 Experimental: false

même erreur

Docker version 17.06.0-ce, build 02c1d87

Les solutions de contournement pour moi consistaient à arrêter, supprimer et réexécuter les conteneurs. Si cela échoue, arrêtez et redémarrez le docker et réessayez. Si cela échoue, redémarrez, reconstruisez les images Docker et réexécutez les conteneurs.

Je devais juste arrêter Apache et relancer docker-compose up.

Le simple redémarrage de docker résout ce problème pour moi.

J'ai eu ce problème sur Windows 10 Pro et j'ai arrêté le service IIS, puis fonctionne!

Si l'erreur que vous obtenez est liée à Redis. assurez-vous de ne pas exécuter Redis pour Windows / Linux / etc en arrière-plan et / ou au démarrage

L'arrêt de Docker via le menu / le redémarrage via le menu n'ont pas résolu le problème pour moi car il ne semble pas que Docker soit vraiment complètement arrêté.

J'ai couru sudo pkill -fi docker et ensuite rouvert le docker et il a été corrigé.

Un problème sur docker-for-mac à nouveau (non vu dans la version précédente, 17.06.0-ce-mac18 (18433)):
docker info Containers: 0 Running: 0 Paused: 0 Stopped: 0 Images: 0 Server Version: 17.09.0-ce Storage Driver: overlay2 Backing Filesystem: extfs Supports d_type: true Native Overlay Diff: true Logging Driver: json-file Cgroup Driver: cgroupfs Plugins: Volume: local Network: bridge host ipvlan macvlan null overlay Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog Swarm: inactive Runtimes: runc Default Runtime: runc Init Binary: docker-init containerd version: 06b9cb35161009dcb7123345749fef02f7cea8e0 runc version: 3f2f8b84a77f73d38244dd690525642a72156c64 init version: 949e6fa Security Options: seccomp Profile: default Kernel Version: 4.9.49-moby Operating System: Alpine Linux v3.5 OSType: linux Architecture: x86_64 CPUs: 2 Total Memory: 7.787GiB Name: moby ID: DTSR:I2Q4:V6L7:XGCE:YFZJ:UASU:47JH:K3K3:ZALX:DJQL:YM5O:GC64 Docker Root Dir: /var/lib/docker Debug Mode (client): false Debug Mode (server): true File Descriptors: 20 Goroutines: 32 System Time: 2017-10-11T08:37:39.082141259Z EventsListeners: 1 No Proxy: *.local, 169.254/16 Registry: https://index.docker.io/v1/ Experimental: true Insecure Registries: 127.0.0.0/8 Live Restore Enabled: false

Eu le même problème, il semble que certains conteneurs étaient toujours en cours d'exécution et bloquaient les ports.

faites un "docker ps -a" pour vérifier si vous avez des conteneurs en cours d'exécution
lancez "docker kill $ (docker ps -q)" pour arrêter tous les conteneurs en cours d'exécution

Je suis confronté au même problème dans la version mac 17.09.0-ce-mac35 (19611)

Essayez la solution dans le fil de discussion par madjam002. Si cela ne fonctionne pas, exportez toutes vos images personnalisées ou assurez-vous qu'elles peuvent être reconstruites avec Dockerfiles, puis réactivez complètement toutes vos images, désinstallez Docker, redémarrez et réinstallez Docker, mais cela peut se reproduire. Une solution de contournement consiste à changer votre configuration sur un port différent. Quand je faisais cela de temps en temps, le nouveau port devenait de nouveau bloqué et je devais changer la configuration pour un troisième port. On ne sait pas pourquoi cela arrive à certaines personnes et pas à d'autres.

Sur MAC, arrêtez l'apache interne

arrêt sudo apachectl

J'ai continuellement ce problème. La chose étrange est que j'obtiens ERR_SOCKET_NOT_CONNECTED dans le navigateur lorsque j'essaye d'accéder au service. Ensuite, j'arrête le conteneur et j'essaie de le redémarrer lorsque j'obtiens l'erreur que vous signalez.

Le redémarrage du moteur Docker résout le problème, mais il revient peu de temps après.

Après quelques recherches, j'ai réalisé que mes conteneurs peuvent communiquer entre eux via les adresses IP internes attribuées par Docker, mais ne peuvent pas communiquer avec le monde extérieur (même Google et autres).

Cela peut se produire après 10 minutes ou après 2 heures d'utilisation.

Je suis sur MacOS High Sierra et le dernier Docker pour Mac.

@rogoit qui a résolu le problème pour moi. Merci!

sudo launchctl unload /System/Library/LaunchDaemons/org.apache.httpd.plist fonctionne pour moi sur mac

Lorsque j'obtiens cette erreur, j'ai réussi à visiter le répertoire / port dans l'hôte:

screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty
cd /port/tcp:0.0.0.0:5000:tcp:172.18.0.16:3000  # or whatever file had the file exists error

Dans mon cas, il y avait un fichier dans ce répertoire - je pense qu'il s'appelait ctl ou similaire, et après avoir exécuté cat sur ce fichier pour voir ce qu'il contenait, le problème a disparu - le fichier, et le répertoire a également disparu après un cd .. et ls .

Je pourrais alors lancer docker-compose start [service] .

Version 17.09.0-ce-mac35 (19611)
Canal: stable
a98b7c1b7c

macOS 10.13.1 (17B1003)

Il semble qu'il existe de nombreuses variantes de ce problème. Voilà le mien:

Docker pour Windows sur Windows 10.

Il semble que la dernière mise à jour de Windows 10 (Fall Creators Update, 2017) ait une nouvelle «fonctionnalité». Lorsque vous arrêtez, il se souvient de ce qui est en cours d'exécution afin de pouvoir les redémarrer pour vous lorsque vous redémarrez.

Cela fait des ravages avec Docker pour Windows (et a effacé plusieurs heures de mon temps avant que je fasse la connexion). Vous avez le redouté «échec de la programmation de la connectivité externe du pilote sur le point de terminaison» en essayant de remettre en place mon docker-compose.

Il s'avère que, dans ce cas, le simple redémarrage de Docker le résout. Je n'ai pas trouvé cela tout de suite, car j'ai redémarré l'ordinateur. Penser que cela redémarrerait également Docker. Non - il a reconstitué Docker dans un mauvais état.

Il semble qu'il n'y ait aucun moyen de désactiver cette nouvelle fonctionnalité de Win10.
https://answers.microsoft.com/en-us/insider/forum/insider_wintp-insider_perf-insiderplat_pc/programs-autostart-after-boot-in-windows-10-fall/09dd8d3e-7b36-45d1-9181-6587dd5d53ab

Au lieu de cela, pour arrêter "correctement", nous sommes obligés de l'exécuter à partir de l'invite de commande: shutdown / s / t 0 ou redémarrer Docker lorsque j'oublie de le faire.

@ biscuit314 Votre suggestion de redémarrer le service docker a fonctionné pour moi, un peu un problème si Windows ne le restaure pas correctement ou si Docker ne peut pas gérer comment Windows fait cela.

simplement fais-le;

arrêt sudo apachectl

Je ne l'ai jamais eu sous Windows, mais lors du passage à Mac, j'ai eu cette erreur. Le redémarrage de Docker n'a rien changé. La solution était de changer le port d'Apache sur Mac de 80 par défaut à l'autre (et de redémarrer évidemment Apache). Après que ce problème ait disparu.

Je sais que ce fil génère encore beaucoup de discussions, mais je vais le fermer car il n'a rien à voir avec Compose en soi. Comme cela a été souligné dans plusieurs commentaires, assurez-vous que vous ne disposez pas d'applications hôtes qui lient déjà le port que votre service tente d'exposer (Apache est un contrevenant courant).

Pour tous ceux qui viennent encore ici de Google: pour ma machine de développement locale, c'était juste DHCP qui m'a donné un nouveau bail et le service docker ne l'a pas détecté et ne pouvait plus créer les mappages réseau.

Malheureusement, aucune de toutes les suggestions n'a fonctionné pour moi. Docker pour Mac Edge 18 quelque chose. High Sierra.

La seule chose qui a fonctionné était d'attendre le démarrage de Docker après le redémarrage du système, puis de l'exécuter
$ docker-compose up -d --force-recreate manuellement. Super triste.

En fin de compte, j'ai rétrogradé à Docker pour Mac Stable 17 et tout fonctionne à nouveau correctement.

Dans fedora 27, je peux contourner ce problème en désactivant mon pare-feu et en redémarrant docker.

systemctl stop firewalld
systemctl restart docker

J'ai rencontré le problème sur un serveur AWS Ubuntu 16. Simplement sudo service docker restart résolu mes problèmes ...

Rencontré le problème sur Windows. Échoue sur n'importe quel service n'importe quel port, le redémarrage de docker l'a corrigé.

Oui, j'ai également eu ce problème avec Docker pour Windows. Le redémarrage de Docker l'a corrigé.

Également rencontré plusieurs fois aujourd'hui et hier avec Docker pour Windows. Le redémarrage de Docker ne l'a pas résolu 😅

La seule chose qui a fonctionné était d'attendre le démarrage de Docker après le redémarrage du système, puis de l'exécuter
$ docker-compose up -d --force-recrée manuellement. Super triste.

Cela a également fonctionné pour moi.

Puis-je faire quelque chose (collecter plus de journaux, envoyer un ID de diagnostic) pour aider à enquêter sur cela?

Était confronté à ce problème en ce moment sur Linux. systemctl restart docker corrigé pour moi.

Même problème ici. FIXE QUAND j'ai redémarré Docker et que les ports ont été libérés - triés

J'utilise Windows 10.0.16299.125, Docker pour Windows 17.12.0-ce (15139) et des conteneurs Linux. J'ai désactivé Skype et l'erreur _Le pilote a échoué lors de la programmation de la connectivité externe sur le point de terminaison_ a disparu. Voici mon docker-compose.yml:

version: '3'

services:
  identity.api:
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
    ports:
      - "80"

J'avais complètement oublié que j'avais un valet en marche au démarrage. En gros, vérifiez simplement tous les ports et arrêtez tout autre chose avant de lancer docker.

J'étais en train de modifier quelques configs iptables. Et rencontré cette erreur. Le redémarrage du démon docker l'a corrigé ...

Starting 4b77a68f3777_deploy_nginx_1 ... 
Starting 6b96d171e3eb_deploy_database_1 ... 
deploy_fpm_1 is up-to-date
Starting 4b77a68f3777_deploy_nginx_1 ... error

ERROR: for 4b77a68f3777_deploy_nginx_1  Cannot start service nginx: b'driver failed programming external connectivity on endpoint 4b77a68f3777_deploy_nginx_1 (0efc2656fd512a2102e7ab82391048a6f5b9503819139096739d443a5b2553b0):  (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 443 -j DNAT --to-destination 172.18.0.Starting 6b96d171e3eb_deploy_database_1 ... error

ERROR: for 6b96d171e3eb_deploy_database_1  Cannot start service database: b'driver failed programming external connectivity on endpoint 6b96d171e3eb_deploy_database_1 (39fe9b0f86582e35df2c279dc2619f660008b6c3928e293744e005d5eca8245f):  (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 5432 -j DNAT --to-destination 172.19.0.2:5432 ! -i br-53878ee15994: iptables: No chain/target/match by that name.\n (exit status 1))'

ERROR: for nginx  Cannot start service nginx: b'driver failed programming external connectivity on endpoint 4b77a68f3777_deploy_nginx_1 (0efc2656fd512a2102e7ab82391048a6f5b9503819139096739d443a5b2553b0):  (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 443 -j DNAT --to-destination 172.18.0.3:443 ! -i br-9c08ee804427: iptables: No chain/target/match by that name.\n (exit status 1))'

ERROR: for database  Cannot start service database: b'driver failed programming external connectivity on endpoint 6b96d171e3eb_deploy_database_1 (39fe9b0f86582e35df2c279dc2619f660008b6c3928e293744e005d5eca8245f):  (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 5432 -j DNAT --to-destination 172.19.0.2:5432 ! -i br-53878ee15994: iptables: No chain/target/match by that name.\n (exit status 1))'

Était confronté à ce problème en ce moment sur vagrant box.Le problème de la boîte vagrant rechargée a été corrigé.

même problème Windows 10

Le même problème sous Windows 10.
Réponse d'erreur du démon: le pilote n'a pas réussi à programmer la connectivité externe sur le point final
après avoir tenté de redémarrer un conteneur.

@ gudge25 @magomedov Je ne sais pas si cela est lié, mais 18.03-rc3 vient d'être publié et contient ce correctif . Cela pourrait valoir la peine d'être mis à jour pour voir si cette version résout les problèmes que les gens rencontrent ici.

Edit: Je viens d'essayer mon projet qui souffrait de ce problème après un redémarrage. Après 20 minutes de test, je ne peux plus reproduire le problème.

ma solution était -> Réinitialiser Docker aux paramètres d'usine

chaque fois que je démarre mon ordinateur, démarre mon conteneur, je vois cette erreur.
Réponse d'erreur du démon: le pilote n'a pas réussi à programmer la connectivité externe sur le point de terminaison ea-mysql (4bf1d5fc80663ac6ceabb68283b7a31860672826709d73aecaeaaa8f50be69ff): Erreur lors du démarrage du proxy userland: mkdir / port / tcp: 0.0.0.0 : 3306.0: tcp d'entrée : 3306.0 : erreur de sortie
Erreur: échec du démarrage des conteneurs: b

redémarrez l'ordinateur, recommencez, cela fonctionne.

PS C: Usersphucnv7> infos sur le docker
Conteneurs: 1
Course à pied: 0
En pause: 0
Arrêté: 1
Images: 2
Version du serveur: 18.03.0-ce
Pilote de stockage: overlay2
Système de fichiers de sauvegarde: extfs
Prend en charge d_type: true
Diff. De superposition native: vrai
Pilote de journalisation: fichier json
Pilote Cgroup: cgroupfs
Plugins:
Volume: local
Réseau: pont hôte ipvlan macvlan superposition nulle
Journal: awslogs fluentd gcplogs gelf journald json-file entrées de journal splunk syslog
Essaim: inactif
Temps d'exécution: runc
Exécution par défaut: runc
Init Binaire: docker-init
version de containerd: cfd04396dc68220d1cecbe686a6cc3aa5ce3667c
version runc: 4fc53a81fb7c994640722ac585fa9ca548971871
version initiale: 949e6fa
Options de sécurité:
seccomp
Profil: par défaut
Version du noyau: 4.9.87-linuxkit-aufs
Système d'exploitation: Docker pour Windows
OSType: linux
Architecture: x86_64
Processeurs: 2
Mémoire totale: 1.934GiB
Nom: linuxkit-00155d347405
ID: 7 SDD: BOPB : ZIQ4: XO2T: AMRA: BGMS : XKB7: EHGH: K73W : 2Y4D: SLCW: Z5DX
Répertoire racine Docker: / var / lib / docker
Mode de débogage (client): faux
Mode de débogage (serveur): vrai
Descripteurs de fichier: 19
Goroutines: 36
Heure système: 2018-03-28T01: 25: 45.5754181Z
ÉvénementsAuditeurs: 1
Registre: https://index.docker.io/v1/
Étiquettes:
Expérimental: vrai
Registres non sécurisés:
127.0.0.0/8
Restauration en direct activée: faux

Je pense que j'ai peut-être compris celui-ci les gars, c'est vraiment stupide ... Je suis sur un mac et j'ai 2 comptes d'utilisateurs distincts exécutant tous deux docker. Après avoir quitté docker sur l'autre compte, je suis revenu a essayé la commande lando start et cela a fonctionné à merveille.

Si vous avez MAC, essayez d'arrêter le serveur. J'ai apache.
arrêt sudo / usr / sbin / apachectl

Pour résoudre l'erreur suivante dans Windows Redémarrez Docker (à partir du menu de la barre d'état ou en sélectionnant l'option 'Redémarrer Docker ...' dans Paramètres / Réinitialiser)

Cannot start service YOUR_SERVICE: driver failed programming external connectivity on endpoint

Je ne peux démarrer aucun conteneur une fois que Windows et le docker sont entièrement démarrés. Aucune attente ne résout cela. Le redémarrage de Docker à partir de l'icône de la barre d'état de Docker for Win le résout.

100% du temps Docker ne fonctionne pas après le démarrage / redémarrage et je dois redémarrer le démon docker dans 100% des cas.

EDIT: oui, @IGZmanuelMartinVivaldi , cela fonctionne, mais je dois le faire à chaque redémarrage de l'hôte. Est-ce un problème avec compose ou avec le démon Docker en général?

@IGZmanuelMartinVivaldi remercie ce travail

@NoICE ressemble à un problème qui a commencé avec la mise à jour Windows 10 Fall Creators, mais je ne sais pas qu'il sera corrigé dans la mise à jour Spring actuelle ou dans les nouvelles versions de Dockers

@IGZmanuelMartinVivaldi J'ai le même problème que @NoICE. Je dois redémarrer le docker tout le temps après le démarrage complet de Windows. C'était dans la mise à jour Fall Creators et celle actuelle.

PS. J'utilise docker compose, tout fichier de composition de mon docker utilise la version 2.

Même problème ici @namerci. Besoin de redémarrer manuellement le docker après le démarrage complet de Windows.

Pareil ici :(
Redémarrer le docker pour Windows ou parfois arrêter les conteneurs puis docker system prune fonctionne

Même problème ici

J'essaie de résoudre le même problème ces deux derniers jours, mais jusqu'à présent, aucun succès. Cela se produit sur Windows 7, la boîte à outils Docker, l'interface de ligne de commande AWS SAM et Eclipse.

+1 même problème sur Windows 10

J'ai eu un problème similaire avec mon serveur nginx. Pour résoudre, je devais:

docker stop $(docker ps -qa)

Windows 10 a quelque chose comme le démarrage rapide. C'est probablement un problème. Sur
un autre PC sans démarrage rapide cela fonctionne bien.

wt., 22 mai 2018, 20:25 użytkownik rangeoshun [email protected]
napisał:

J'ai eu un problème similaire avec mon serveur nginx. Pour résoudre, je devais:

docker stop $ (docker ps -qa)

-
Vous recevez cela parce que vous avez été mentionné.
Répondez directement à cet e-mail, affichez-le sur GitHub
https://github.com/docker/compose/issues/3277#issuecomment-391092688 ,
ou couper le fil
https://github.com/notifications/unsubscribe-auth/ABGaX_NDPkbWf08T2wOkq1PjQz4v-ES3ks5t1FgPgaJpZM4IBfG_
.

EDIT: C'est moi qui suis aveugle. Il y avait une faute de frappe dans le numéro de port dans ma configuration.

Même problème - Échec de la liaison pour 0.0.0.0:18305: le port est déjà alloué.
Mais le port n'est pas alloué. Vérifié avec sudo lsof -i -P -n , et le service peut être déclaré sans problème lorsque le docker n'est pas utilisé.

Version: 18.03.1-ce-mac65 (24312)
Canal: stable
93354b38bd

Le redémarrage n'aide pas.
La réinitialisation aux paramètres d'usine n'aide pas.

J'étais également confronté au même problème.
Je l'ai résolu en redémarrant le docker.
Les gars, je vois qu'un certain temps, la machine virtuelle peut être occupée avec les mêmes ports que ceux que vous utilisez actuellement.
Ainsi, en redémarrant le docker, vous pouvez résoudre ce problème.

Comme indiqué précédemment . Ce n'est pas un problème de composition, c'est un problème Docker. D'où pourquoi cela est fermé.
Il y a un problème ouvert pour cela dans le dépôt Docker .

Je pourrais attacher n'importe quel service à n'importe quel port. Pour une raison quelconque, le message d'erreur m'indiquait une adresse IP que je ne reconnaissais pas. J'ai redémarré Docker (Windows) et cela a fonctionné à partir de là.

J'ai eu le même problème sur Mac OS Sierra 10.12.6. Docker version 18.03.1-ce.

Je l'ai résolu en appliquant la suggestion @ a14m :
Soution :
lsof -nP +c 15 | grep LISTEN

com.docker.vpnk 35957   18u     IPv4        0t0       TCP *:7501 (LISTEN)
com.docker.vpnk 35957   19u     IPv6        0t0       TCP [::1]:7501 (LISTEN)

Trouvez le processus qui écoute le port bloqué et tuez-le: kill -9 <_process_id_ i = "14" /> . Pour moi c'était:
kill -9 35957

Ensuite, redémarrez Docker et tout va bien

La désactivation du démarrage rapide sur Windows 10 aide

Redémarrer les travaux de docker

Redémarrer le docker (via la commande «Redémarrer» ou quitter et relancer manuellement) n'a PAS fonctionné pour moi.

Réinitialiser Docker aux paramètres d'usine

Ça m'a aidé.

cela m'aide en réinitialisant Docker.

Redémarrez Docker fonctionne pour moi. (Docker pour Windows, Docker version 18.06.1-ce, build e68fc7a )

Pour ajouter au commentaire de Ray-Eldath: j'étais confus car le redémarrage de mon ordinateur deux fois ne fonctionnait pas (même version: 18.06.1-ce pour Windows), et le redémarrage de votre ordinateur est sûrement suffisant pour compter comme redémarrer Docker aussi, non? Donc je suppose que le redémarrage n'a pas résolu le problème, non? Eh bien, non, lol. Je vais en fait sur Docker et clique sur "Redémarrer" et maintenant cela fonctionne.

EDIT: Oh, intéressant, maintenant je sais pourquoi cela s'est produit (probablement). Le redémarrage de mon ordinateur a en fait créé ce problème, je pense. Regarde ça:

https://stackoverflow.com/questions/40668908/running-docker-for-windows-error-when-exposing-ports

Citation pertinente:

La dernière mise à jour de Windows 10 (Fall Creators Update, 2017) a une nouvelle «fonctionnalité». Il démarre automatiquement toutes les applications en cours d'exécution lors de votre dernier arrêt.

Cela reconstitue Docker pour Windows dans un mauvais état. Cela donnait l'impression que ces ports étaient utilisés par autre chose - c'était le fantôme de lui-même. Cela expliquait pourquoi ces ports étaient toujours utilisés même si j'ai arrêté / démarré mes conteneurs et même redémarré!

Compte tenu de cela, je suis toujours suspect de la mise à jour Windows 18.06.1-ce, car ce n'était pas un problème pour moi jusqu'à ce que je mette à jour.

J'ai Windows 10 Pro à la fois sur un ordinateur portable et un ordinateur de bureau avec exactement le même problème. J'utilise actuellement la version: 18.06.1-ce, mais au moins les 2 dernières versions précédentes avaient le même comportement. Il s'agit d'un problème cohérent et facilement reproductible, se produisant sur une configuration très courante.

Faisons-nous tous quelque chose de mal ou est-ce quelque chose qui doit être réparé?

Vous pouvez également vérifier avec ACTIVITY MONITOR sur OSX. J'ai vu ce problème lorsqu'un autre utilisateur est connecté et utilise Docker. Tuez les processus ou déconnectez-vous et cela fonctionnera.

J'ai eu cela sur le docker pour Windows avec nginx. J'ai redémarré docker et je ne le vois pas maintenant. Bien sûr, il sera probablement là si je supprime puis crée un nouveau conteneur pour nginx.

J'ai eu le même problème (démarrage d'un proxy inverse nginx sur le port 80) sur Windows 10, peut-être causé par une précédente installation de boîte virtuelle.

La réinitialisation du docker aux paramètres d'usine (icône de clic droit dans la zone de notification -> paramètres -> réinitialisation) l'a corrigé pour moi.

redémarrer le travail de docker pour moi. sur windows 10

thx @ballmdr , cela fonctionne pour moi non plus.

J'avais le même problème. Le port 80 était utilisé par IIS.

1) Hit Run, tapez - 'inetmgr' qui ouvre IIS
2) Sur les actions (en haut à droite) - Cliquez sur 'Arrêter'
3) Exécutez à nouveau Docker

J'avais le même problème sur MAC moJave après la mise à jour de docker-compose. Le simple redémarrage de docker résout les problèmes pour moi.

Idem ici, j'ai macOS Mojave et le redémarrage des problèmes résolus.

@makproductions merci.

Je reçois ce problème assez régulièrement (sous Windows) et le redémarrage de Docker résout le problème.

Ubuntu 18.04, le redémarrage de Docker résout le problème

Le problème existe toujours sous Windows dans 18.06.1-ce-win73 (19507) Veuillez le rouvrir.

Cela se produit généralement depuis que postgresql est en cours d'exécution et que vous utilisez le port 5432, essayez d'arrêter le service et d'exécuter docker-compose up --build pour qu'il effectue l'initialisation.

service sudo arrêt postgresql
docker-compose up --build

devrait marcher

madjam002

1.docker rm -f tous les conteneurs.
2. interfaces réseau rm réseau docker.
3.sudo rm /var/lib/docker/network/files/local-kv.db

J'ai essayé ceci maintenant, je suis coincé avec un autre problème comme docker: Error response from daemon: failed to update store for object type *libnetwork.endpointCnt: Key not found in store. . Comment résoudre ce problème, pouvez-vous me suggérer ... Merci.

Je sais que ce fil génère encore beaucoup de discussions, mais je vais le fermer car il n'a rien à voir avec Compose en soi.

Il s'agit d'un problème de docker - pas d'un problème de composition de docker. Ce problème est clos, il ne gagnera donc aucun intérêt. Il y a plusieurs problèmes déjà ouverts dans le référentiel principal de docker. Les commentaires devraient probablement y aller:

Voir https://github.com/docker/for-win/issues/2722
et https://github.com/docker/for-win/issues/1967

@ shin- Cela devrait-il être verrouillé?

J'obtiens la même erreur dans la situation suivante:
Docker 18.06.1, Docker Compose 1.22.0, Ubuntu 18.04

Démarrage de d1df6864f98d2599_api_1 pour d1df6864f98d2599_api_1 Impossible de démarrer l'api du service: le pilote a échoué lors de la programmation de la connectivité externe sur le point de terminaison d1df6864f98d2599_api_1 (6b3f4a9c68d6858ace2b39a0296ed a échoué41620ff3007b14c2379b539: échec du port 41620ff3007b14c2379b539: 0,05 Bind déjà alloué) 0,07

Lorsque je démarre les conteneurs en utilisant docker-compose à partir de la ligne de commande, le conteneur s'appelle src_api_1 , car j'exécute la commande à partir d'un dossier src .

Lorsque j'exécute docker-compose depuis TeamCity, le conteneur s'appelle d1df6864f98d2599_api_1 et j'obtiens cette erreur.

La commande est docker-compose -f src/docker-compose-production.yml up -d api .

Je viens de changer mon numéro de port dans le fichier .yaml et cela a commencé à fonctionner pour moi.

Dans mon cas, c'était parce que le mot de passe de connexion Windows a été mis à jour et apparemment le nouveau mot de passe n'a pas été mis à jour vers docker. Je devais aller dans le menu fixe pour Windows -> paramètres -> lecteur partagé, décocher les lecteurs partagés, cliquer sur appliquer, puis vérifier à nouveau et appliquer, il vous demandera ensuite le mot de passe. Après avoir entré le mot de passe, il fonctionne à nouveau.

Cela continue de nuire à ma configuration. Le redémarrage de docker ne libère pas le port sous OSX. Le redémarrage de la machine hôte libère le port.

J'ai eu le même message d'erreur, mais mon problème était dû au fait de travailler sur deux pages différentes en même temps.

Lors du passage de l'un à l'autre, j'ai oublié d'utiliser docker-compose down,

J'étais également confronté au même problème mais après un long moment une rencontre avec la solution parfaite

  1. type docker container ls -a (vérifiez le conteneur qui utilise ce numéro de port)
  2. conteneur docker rm -f(Désallouer le port en supprimant ce conteneur)
  3. Assigner votre nouveau conteneur avec votre numéro de port

@ ronakganatra9 hé, j'ai une question où pouvez-vous trouver votre propre port dans le fichier .yaml?

`` PS C: UsersMouazDesktopfernandroidstf-poc> docker-compose up
stf-poc_storage-temp_1_20d132e37939 est à jour
stf-poc_dev-triproxy_1_7224046ecd68 est à jour
stf-poc_auth_1_f76f43d5e179 est à jour
stf-poc_rethinkdb_1_6e5e0628f86c est à jour
stf-poc_triproxy_1_7d61645de13d est à jour
stf-poc_adb_1_53f170a2d9ae est à jour
stf-poc_storage-plugin-apk_1_efbbfa2dc680 est à jour
stf-poc_storage-plugin-image_1_ebc249ed0769 est à jourDémarrage de stf-poc_migrate_1_ebc2c2157fdf ...

Démarrage de stf-poc_migrate_1_ebc2c2157fdf ... terminé

stf-poc_api_1_713c609d74d5 est à jour
stf-poc_reaper_1_cca8849d63b8 est à jour
stf-poc_websocket_1_a41866f85947 est à jour
stf-poc_app_1_db0fc2088323 est à jour
Démarrage de e3e9585e6a3a_stf-poc_provider_1_6961669e5bb1 ... erreur

ERREUR: pour e3e9585e6a3a_stf-poc_provider_1_6961669e5bb1 Impossible de connectivité externe point final e3e9585e6a3a_stf-poc_provider_1_6961669e5bb1 (6033aa098528aac29e541b1d52303e4106c0f7a760222995b4c0b348a7d76941): Erreur lors du

ERREUR: pour le fournisseur ne peut pas démarrer le fournisseur de services: b'driver a échoué lors de la programmation de la connectivité externe sur le point de terminaison e3e9585e6a3a_stf-poc_provider_1_6961669e5bb1 (6033aa098528aac29e541b1d52303e4106c0f7a760222995a4c76c0f7a760222995a4c76c0f7a760222995a4c76c0f7a760222995b4cindic0b)
ERREUR: erreurs rencontrées lors de la mise en place du projet.
PS C: UsersMouazDesktopfernandroidstf-poc> conteneur docker ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d46b94a05e8b stf-poc_nginx "/entrypoint.sh" il y a 2 minutes Redémarrage (1) il y a 38 secondes stf-poc_nginx_1_4c61f58776f1
6674d0116aa9 openstf / stf: dernier "stf storage-plugin-…" il y a 2 heures En haut Environ une minute 3000 / tcp stf-poc_storage-plugin-image_1_ebc249ed0769
df2e7c721d55 openstf / stf: latest "stf storage-plugin-…" il y a 2 heures Up Environ une minute 3000 / tcp stf-poc_storage-plugin-apk_1_efbbfa2dc680
a697ef5e309b openstf / stf: latest "stf app --auth-url…" il y a 2 heures Up Environ une minute 3000 / tcp stf-poc_app_1_db0fc2088323
fefaebe9340a openstf / stf: dernier "stf websocket --por…" il y a 2 heures En haut Environ une minute 3000 / tcp stf-poc_websocket_1_a41866f85947
8a1fd41fa92d stf-poc_storage-temp "stf storage-temp -…" 2 heures auparavant En haut Environ une minute 3000 / tcp stf-poc_storage-temp_1_20d132e37939
c7f48e1b4d74 openstf / stf: dernier "stf reaper dev --co…" il y a 4 heures Up Environ une minute 3000 / tcp stf-poc_reaper_1_cca8849d63b8
293d4cf18ddb openstf / stf: dernier "stf api --port 3000…" il y a 4 heures Up Environ une minute 3000 / tcp stf-poc_api_1_713c609d74d5
257667df032e openstf / stf: dernier "stf processor --con…" il y a 4 heures Up Environ une minute 3000 / tcp stf-poc_processor_1_9c46a2ef3b9d
e065f41e2f61 rethinkdb: 2.3 "rethinkdb --bind all" 4 heures auparavant En haut Environ une minute 8080 / tcp, 28015 / tcp, 29015 / tcp stf-poc_rethinkdb_1_6e5e0628f86c
522eb78fc46a sorccu / adb: latest "/ sbin / tini - adb -…" il y a 4 heures Up Environ une minute 5037 / tcp stf-poc_adb_1_53f170a2d9ae
44e03f74b098 openstf / stf: dernière "stf triproxy app -…" il y a 4 heures En haut Environ une minute 3000 / tcp stf-poc_triproxy_1_7d61645de13d
32f4f65a0d4e openstf / stf: dernier "stf triproxy dev -…" il y a 4 heures Up Environ une minute 3000 / tcp stf-poc_dev-triproxy_1_7224046ecd68
7465e46fd2a0 openstf / stf: dernier "stf auth-mock --app…" il y a 4 heures Up Environ une minute 3000 / tcp `stf-poc_auth_1_f76f43d5e179
''

c'est ce qui se passe avec moi, et j'ai essayé de redémarrer, de désinstaller et de réinstaller, d'effacer de l'argent et de réinitialiser les paramètres d'usine, cela montre toujours ce genre d'ERREUR, pensez-vous que je dois changer le port de ADB de 5037 à 3000 / tcp?

si oui, comment puis-je faire ça?
MERCI !!

Redémarrez simplement

Redémarrez simplement

Cela a fonctionné pour moi aussi! Pour une raison quelconque, cela n'a pas fonctionné après le redémarrage du PC, mais après avoir cliqué sur "redémarrer le docker" dans la barre d'icônes.

Redémarrez simplement Docker. Cela a fonctionné pour moi.

Cela a fonctionné pour moi aussi.

Ouais, le redémarrage fonctionne mais c'est toujours très ennuyeux, je dois le faire à chaque fois que je veux lancer Docker ...

redémarrer le docker peut tout résoudre, car le redémarrage du docker nettoierait tout le conteneur en cours d'exécution.

Je vérifie à nouveau mon fichier docker compose.yml et supprime le conteneur qui se trouve à l'intérieur du fichier docker-compose.yml non plus, et je n'ai pas besoin de redémarrer le docker.

prendre plaisir.

Exécutez la commande suivante et obtenez l'ID de conteneur qui utilise le port que vous souhaitez supprimer. Utilisez l'ID du conteneur et supprimez-le à l'aide de la deuxième commande.

docker ps -a
docker rm container_id

Bonjour, j'exécute Docker (v 18.09.0) et j'obtiens l'erreur suivante lors du démarrage de sandbox-proxy. Veuillez aider.

C: Program FilesDockerDockerResourcesbindocker.exe: réponse d'erreur du démon: le pilote n'a pas réussi à programmer la connectivité externe sur le proxy sandbox de point de terminaison (fcc9a4c77b0de66ef7e8c8893b6eafb49f8071e7b9c3b1ce1def3a5e1434358d): erreur de démarrage de userland.0.0: erreur inattendue

J'ai essayé de réinstaller / redémarrer le docker / système, de supprimer des conteneurs, etc.
Rien n'a aidé.

Bonjour, j'exécute Docker (v 18.09.0) et j'obtiens l'erreur suivante lors du démarrage de sandbox-proxy. Veuillez aider.

C: Program FilesDockerDockerResourcesbindocker.exe: réponse d'erreur du démon: le pilote n'a pas réussi à programmer la connectivité externe sur le proxy sandbox de point de terminaison (fcc9a4c77b0de66ef7e8c8893b6eafb49f8071e7b9c3b1ce1def3a5e1434358d): erreur de démarrage de userland.0.0: erreur inattendue

J'ai essayé de réinstaller / redémarrer le docker / système, de supprimer des conteneurs, etc.
Rien n'a aidé.

Essayez d'arrêter le docker et de le relancer en mode administrateur. Après avoir démarré, ouvrez également Power Shell en mode administrateur.
Parce que l'erreur indique «permission refusée», cela résoudra peut-être votre problème. Je ne suis pas sûr.

le redémarrage du service docker m'a aidé à résoudre ce problème.

version 18.09.0

Bonjour, j'exécute Docker (v 18.09.0) et j'obtiens l'erreur suivante lors du démarrage de sandbox-proxy. Veuillez aider.
C: Program FilesDockerDockerResourcesbindocker.exe: réponse d'erreur du démon: le pilote n'a pas réussi à programmer la connectivité externe sur le proxy sandbox de point de terminaison (fcc9a4c77b0de66ef7e8c8893b6eafb49f8071e7b9c3b1ce1def3a5e1434358d): erreur de démarrage de userland.0.0: erreur inattendue
J'ai essayé de réinstaller / redémarrer le docker / système, de supprimer des conteneurs, etc.
Rien n'a aidé.

Essayez d'arrêter le docker et de le relancer en mode administrateur. Après avoir démarré, ouvrez également Power Shell en mode administrateur.
Parce que l'erreur indique «permission refusée», cela résoudra peut-être votre problème. Je ne suis pas sûr.

Cela ne résout pas le problème, j'ai démarré le terminal et le docker lui-même en mode administrateur et il génère toujours exactement la même erreur.

Eu le même problème aujourd'hui. J'ai couru docker-compose down et redémarré le service docker qui semblait faire l'affaire.

ERROR: for web_1  Cannot start service web: driver failed programming external connectivity on
endpoint web_1 (5694e5627dbac6cd543d65c764d4b9877fc67557b10f6f8a1f1e7170ffdc8314): 
Error starting userland proxy: mkdir /port/tcp:0.0.0.0:8080:tcp:172.19.0.2:8080: input/output error

ERROR: for web  Cannot start service web: driver failed programming external connectivity on 
endpoint web_1 (5694e5627dbac6cd543d65c764d4b9877fc67557b10f6f8a1f1e7170ffdc8314): 
Error starting userland proxy: mkdir /port/tcp:0.0.0.0:8080:tcp:172.19.0.2:8080: input/output error
Encountered errors while bringing up the project.

Redémarrez mon docker dans Windows 10, puis cela fonctionne. ^^

Rencontré le même problème. Le redémarrage de Docker pour Windows aide.

Si vous utilisez Windows, exécutez netstat -ab et vérifiez ce qui utilise le port TCP 0.0.0.0:443 , pour moi, vmware l'utilisait, même si je l'avais quitté

Redémarrer docker n'est pas la meilleure solution pour les gens. (C'est aussi la première chose que j'ai faite)

J'ai le même problème et il peut être résolu en redémarrant le docker.

Je viens de redémarrer et cela a fonctionné à nouveau

J'ai le même problème avec 18.09.1 ​​sous Linux. Ce numéro peut-il être rouvert? Sinon, un problème devrait être ouvert pour un meilleur message d'erreur indiquant qu'il ne s'agit pas en fait d'un bogue de docker, ce qu'il semble être.

Si vous continuez à vous attendre à ce que les gens redémarrent le logiciel à un moment donné, ils déchireront simplement docker; ce n'est pas comme s'il n'y avait pas d'autres systèmes de conteneurs là-bas.

Le redémarrage de docker ne fonctionne que pour la première fois. Après cela, chaque fois que je frappe la commande docker run cela me donne la même erreur. Il n'est pas fixé de façon permanente.

Ce que j'essaye de réaliser:

J'essaie juste de configurer l'environnement LEMP (nginx, php-fpm, MySQL) sur ma machine centos 7.

Commandes:

Docker redémarré

service docker restart

Créer un réseau de ponts

docker network create -d bridge LEMP

Exécuter le conteneur php-fpm

docker run --name php-fpm -v /home/ashish/work/docker/php:/app -p "9000:9000" --network LEMP --rm -d php:7-fpm

Lors de la première commande d'exécution après, cela fonctionne avec la sortie suivante:

b003815c0ee2fba05aa24b0965871b55ce717fcd56557066acd448519b59498b

iptables -L

`` `` Chaîne INPUT (politique DROP)
destination source du prot opt ​​cible
ACCEPTER tout - n'importe où n'importe où
ACCEPTER tout - n'importe où, n'importe où, état CONNEXE, ÉTABLI
ACCEPTER tout - n'importe où, n'importe où, état NOUVEAU
ACCEPTER tout - n'importe où, n'importe où, état NOUVEAU
ACCEPTER icmp - état n'importe où n'importe où NOUVEAU
ACCEPTER icmp - état n'importe où n'importe où NOUVEAU
ACCEPTER icmp - état n'importe où n'importe où NOUVEAU
ACCEPTER icmp - état n'importe où n'importe où NOUVEAU
ACCEPTER tcp - n'importe où n'importe où tcp spts: 1024 : 65535 dpt: 28082 state NOUVEAU

Chaîne FORWARD (politique DROP)
destination source du prot opt ​​cible

SORTIE de la chaîne (politique DROP)
destination source du prot opt ​​cible
ACCEPTER tout - n'importe où n'importe où
ACCEPTER tout - n'importe où, n'importe où, état CONNEXE, ÉTABLI
ACCEPTER tcp - n'importe où 192.168.40.17 tcp dpt: objcall
ACCEPTER tout - n'importe où, n'importe où, état NOUVEAU
ACCEPTER tout - n'importe où, n'importe où, état NOUVEAU
ACCEPTER tout - n'importe où, n'importe où, état NOUVEAU
ACCEPTER tcp - n'importe où n'importe où tcp spts: 1024 : 65535 dpt: 28082 state NOUVEAU

### If you notice, It has removed my DOCKER chain. Now when i am trying to run my nginx container, It gives me same error:

docker run --name nginx -v /home/ashish/work/docker/nginx/conf/local.conf:/etc/nginx/conf.d/default.conf -v / home / ashish / work / docker / php: / app -p 80:80 --rm -itd --network LEMP nginx


2dab94327ebbfb1849960df440cd8a1ba15b6253471b77838a5dce139b5cccdc

docker: réponse d'erreur du démon: le pilote a échoué lors de la programmation de la connectivité externe sur le point de terminaison nginx (df5852f12bb611dcf0057418e50b3f679efcbd81c91af6679c8e44b8a59fe4bf): (iptables a échoué: iptables a échoué: iptables --wait -t47399c8e44b8a59fe4bf): (iptables a échoué: iptables a échoué: iptables --wait -t47399c8e44b8a59fe4bf. .0.3 --dport 80 -j ACCEPT: iptables: Pas de chaîne / cible / correspondance par ce nom. (État de sortie 1)).
''

Solution de contournement qui fonctionne pour moi:

Version Docker:

docker -v

Docker version 18.09.0, build 4d60db4

Ancienne version du noyau de la machine:

uname -r

3.10.0-957.1.3.el7.x86_64

Pris une autre machine avec une version de noyau différente:

uname -r

3.10.0-862.2.3.el7.x86_64

o / p

Ça a marché. Aucune erreur ne s'est produite comme ci-dessus. Tout se passe bien.

J'ai changé mon noyau de vieille machine et cela a fonctionné pour moi. Bien que ce ne soit pas bon de changer votre noyau, surtout en production.

Pour les utilisateurs de Windows: désactivez le "démarrage rapide" dans vos paramètres d'alimentation et cela fonctionne!
https://stackoverflow.com/a/47818614

La dernière mise à jour de Windows 10 (Fall Creators Update, 2017) a une nouvelle «fonctionnalité». Il démarre automatiquement toutes les applications en cours d'exécution lors de votre dernier arrêt.
Cela reconstitue Docker pour Windows dans un mauvais état. Cela donnait l'impression que ces ports étaient utilisés par autre chose - c'était le fantôme de lui-même. Cela expliquait pourquoi ces ports étaient toujours utilisés même si j'ai arrêté / démarré mes conteneurs et même redémarré!

redémarrer le docker peut tout résoudre, car le redémarrage du docker nettoierait tout le conteneur en cours d'exécution.

Je vérifie à nouveau mon fichier docker compose.yml et supprime le conteneur qui se trouve à l'intérieur du fichier docker-compose.yml non plus, et je n'ai pas besoin de redémarrer le docker.

prendre plaisir.

Cela a fonctionné pour moi Thnks! :)

Même problème ici - dans mon cas, Apache fonctionnant sur le port 80 était le problème.

D'autres ci-dessus avaient mentionné netstat, et c'est un excellent outil. Une instance de nginx fonctionnait sur le port 80. J'ai utilisé netstat -ano | findstr: 80 (cmd) ou bash >> netstat -ano | grep: 80, puis a tué le PID

https://stackoverflow.com/a/20724040/7954264

Je l'ai résolu en mettant à jour Windows build de 1803 à 1809

arrêtez votre démon docker et démarrez en tant qu'administrateur.

docker rm $(docker ps -a -q) a fonctionné pour moi.

Désolé d'être ce type, mais sur ma machine, le redémarrage de l'ordinateur était la solution. Le redémarrage de Docker n'a pas aidé.

J'ai eu le même message d'erreur et j'ai redémarré Docker sous Windows . Ça a fait l'affaire.

Tout d'abord, mettez à niveau Windows 10 vers 1809.
Ensuite, désactivez «Démarrer le bureau Docker lorsque vous vous connectez» dans le paramètre Docker.
Enfin, démarrez le docker manuellement (vous n'avez pas à redémarrer).
Le problème a disparu et il fonctionne bien dans mon ordinateur.

pour moi, un redémarrage manuel de docker l'a fait fonctionner

Même problème pour moi sur Mac OS Mojave, en essayant de faire apparaître mailu avec docker-compose:

$ docker-compose -p mailu up -d
Creating network "mailu_default" with driver "bridge"
Creating mailu_fetchmail_1 ... 
Creating mailu_redis_1     ... 
Creating mailu_front_1     ... error
Creating mailu_fetchmail_1 ... done
Creating mailu_redis_1     ... done
ERROR: for mailu_front_1  Cannot start service front: driver failed programming external connectivity on endpoint mailu_front_1 (f7085e55644392e76cCreating mailu_antivirus_1 ... done
Creating mailu_admin_1     ... done

ERROR: for front  Cannot start service front: driver failed programming external connectivity on endpoint mailu_front_1 (f7085e55644392e76c6ae5cd6f3be159c58195e0fc85ae8610f2d84d42dbecab): Error starting userland proxy: port is not a proto:IP:port or unix:path: 'tcp:[:'
ERROR: Encountered errors while bringing up the project.
$

et ce qui suit:

  • Bureau Docker: 2.0.0.3
  • Moteur: 18.09.2
  • Machine: 0.16.1
  • Notaire: 0.6.1
  • Credential Helper: 0.6.0
  • Kubernetes: v1.10.11

Je viens de redémarrer mon Mac, puis j'ai couru

$ docker rm $ (docker ps -a -q)

comme quelqu'un l'a recommandé.

Voici la strophe pertinente de docker-compose.yml pour le service "front":

  front:
    image: ${DOCKER_ORG:-mailu}/${DOCKER_PREFIX:-}nginx:${MAILU_VERSION:-1.6}
    restart: always
    env_file: mailu.env
    logging:
      driver: json-file
    ports:
      - "127.0.0.1:80:80"
      - "::1:80:80"
      - "127.0.0.1:443:443"
      - "::1:443:443"
      - "127.0.0.1:25:25"
      - "::1:25:25"
      - "127.0.0.1:465:465"
      - "::1:465:465"
      - "127.0.0.1:587:587"
      - "::1:587:587"
      - "127.0.0.1:110:110"
      - "::1:110:110"
      - "127.0.0.1:995:995"
      - "::1:995:995"
      - "127.0.0.1:143:143"
      - "::1:143:143"
      - "127.0.0.1:993:993"
      - "::1:993:993"
    volumes:
      - "/Users/rmfuhrer/mailu/certs:/certs"
      - "/Users/rmfuhrer/mailu/overrides/nginx:/overrides"

AFAICT, je n'ai rien écouté sur aucun des ports mentionnés dans la configuration docker-compose:

$ netstat -a -f inet -p tcp -n | grep LISTEN
tcp4       0      0  *.17500                *.*                    LISTEN     
tcp4       0      0  127.0.0.1.17603        *.*                    LISTEN     
tcp4       0      0  127.0.0.1.17600        *.*                    LISTEN     
tcp4       0      0  *.49178                *.*                    LISTEN     
tcp4       0      0  127.0.0.1.6670         *.*                    LISTEN     
tcp4       0      0  127.0.0.1.8888         *.*                    LISTEN     
tcp4       0      0  *.88                   *.*                    LISTEN     
tcp4       0      0  *.445                  *.*                    LISTEN     
tcp4       0      0  *.22                   *.*                    LISTEN     
$

pour moi, un redémarrage manuel de docker l'a fait fonctionner

Je peux également le confirmer.

Nous rencontrons le même problème sur Windows 10. Le redémarrage semble résoudre le problème, mais nous devons le redémarrer quelques fois par semaine. Y a-t-il un correctif à venir pour cela?

J'ai besoin de redémarrer docker tous les jours ... j'aimerais vraiment que ce soit corrigé!

J'ai encore le même problème. Cela se produit si vous avez activé le démarrage rapide (activé par défaut) dans Windows 10. Vous pouvez le désactiver -> https://www.windowscentral.com/how-disable-windows-10-fast-startup et alors vous n'aurez pas besoin pour redémarrer docker tous les jours. Mais c'est juste un travail autour.

Avait le même problème,
redémarrez simplement docker, corrigez-le pour moi

Pour moi, c'était parce que d'autres conteneurs fonctionnaient en utilisant ce port. Je viens de changer le mappage de port dans docker-compose.yml , par exemple pour le service de conteneur memcache :

De:

  memcache:
    container_name: project_memcache
    image: memcached:latest
    ports:
        - "11211:11211"

Vers (port externe suivant au 11212):

  memcache:
    container_name: project_memcache
    image: memcached:latest
    ports:
        - "11212:11211"

Redémarrer le docker fonctionne pour moi

@yedincisenol oui, mais devoir redémarrer tous les jours est un peu ennuyeux

J'ai le même problème et oui, le redémarrage a résolu mon problème. J'espère qu'ils corrigent ce problème.

Redémarrez Docker ... juste ça

Redémarrez le menu fixe sous Windows fonctionne également pour moi: /

Si vous êtes sur un Mac et que votre serveur Web Docker ne démarre pas, il peut s'agir d'un partage de fichiers - Apple utilise l'Apache intégré pour cela. Soit...
~arrêt sudo apachectl~
ou mieux encore, désactivez le partage de fichiers.

J'ai le même problème, qui est lié à IIS, donc j'ai arrêté cela.

Comme l'a dit @AarashFarahani . J'ai arrêté IIS, dont je n'avais pas besoin pour ce projet, et l'erreur a disparu.

Pour les utilisateurs de Mac: essayez de stocker les services httpd, apache.

docker rm $(docker ps -a -q) a fonctionné pour moi.

Cela n'a pas fonctionné pour moi (Windows 10, Docker version 18.09.2)

➜ sudo netstat -nlp | grep 443
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 501/vmware-hostd tcp6 0 0 :::443 :::* LISTEN 501/vmware-hostd

Problème résolu

redémarrez simplement docker et déployez à nouveau -> fonctionne pour moi

J'ai le même problème.

Ma solution de contournement (car cela semble être le seul type de solution) consistait simplement à désactiver "Démarrer Docker Desktop lorsque vous vous connectez".
Mais gardez-le au programme de démarrage dans la gestion des tâches.

Si vous ne le trouvez pas dans votre gestion des tâches, vous pouvez placer un raccourci dans:
%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

Je suppose donc que la façon dont Docker utilise le `` Démarrer Docker Desktop lorsque vous vous connectez '' n'est pas la manière dont Windows 10 le souhaite.


Version Docker:
18.09.2, build 6247962

Version Windows:
Windows 10 Professionnel Insiders Preview 1903, build 18898.1000

Aucun de ceux-ci n'a fonctionné pour moi. L'arrêt des services (comme décrit ici ) a finalement fait l'affaire:

net stop docker
net stop com.docker.service
taskkill /IM "dockerd.exe" /F
taskkill /IM "Docker for Windows.exe" /F
net start docker
net start com.docker.service
"c:\program files\docker\docker\Docker for Windows.exe"

Cliquer sur l'icône Docker Desktop sur la barre d'état et sélectionner Redémarrer ... a fonctionné pour moi sur Windows 10!

docker: réponse d'erreur du démon: le pilote n'a pas réussi à programmer la connectivité externe sur le point de terminaison sad_sanderson

Si quelqu'un utilise Docker Desktop
Suivez les étapes ci-dessous: (Évitez de redémarrer Docker Desktop)

  • Quittez Docker Desktop
  • Redémarrez Docker Desktop
  • Cela fonctionnera bien

Mon problème était que j'avais initialisé un Docker Swarm sur ma machine pour une expérimentation. Tout est revenu à la normale après avoir exécuté docker swarm leave --force

Le redémarrage de docker à chaque fois pour ce problème n'est qu'une solution de contournement. En effet, il résout le problème car il arrête tous les ports qui pourraient être occupés par des conteneurs. Mais le vrai problème est que les ports ne s'affichent pas avec netstat ou avec la commande docker ps , il devient donc un véritable casse-tête d'identifier quel conteneur utilise le port.

Si quelqu'un trouve un autre moyen que le redémarrage de Docker ou la désactivation du démarrage rapide, veuillez poster ici.

pour moi, un redémarrage manuel de docker l'a fait fonctionner

Je peux également le confirmer.

Oui, sur Win10, cela fait l'affaire

@dtekchandani

Solution : désactivez simplement "Démarrer Docker Desktop lorsque vous vous connectez".
Mais gardez-le au programme de démarrage (par exemple, copiez un lien vers le docker dans votre dossier de démarrage ici:
% USERPROFILE% AppDataRoamingMicrosoftWindows Menu DémarrerProgrammesDémarrer

Cela permettra à Docker de démarrer plus tard après la connexion et cela fonctionne pour de nombreuses personnes.

win + r> cmd (exécuté en tant qu'administrateur)> netstat -aon | plus
puis nous cherchons une adresse locale avec le port: 8000, souvenez-vous du PID,> ctrl + alt + del allez dans le volet "Détails", recherchez un processus avec un ID comme le PID> supprimez la tâche (terminez la tâche)> redémarrez votre Docker> et redémarrez (Exécuter) votre docker-compose.
Cela devrait résoudre le problème
Option 2: ouvrez simplement votre docker-compose.yml et changez le port de 8000 à n'importe quel autre (ports:
- '8000: 80')> Exécutez votre docker

Ayant le même problème ici, cependant le redémarrage de Docker / Windows / Hyper-V entraîne un échec.
Voici l'impression que j'obtiens de mon script d'exécution.
C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from daemon: driver failed programming external connectivity on endpoint pihole (c3b944c90dc0b7d948c3dd833becc51b754174a56c36272cda325611d9b792f5): Error starting userland proxy: listen tcp 0.0.0.0:80: bind: An attempt was made to access a socket in a way forbidden by its access permissions.
ID de diagnostic:
5C4CFABD-4AEA-4F67-9016-E9B6D58A3934/20190918072240
Script d'exécution initial: (si cela aide même)
docker run -d --name pihole -p 53:53/tcp -p 53:53/udp -p 67:67/udp -p 80:80 -p 443:443 -v "${DOCKER_CONFIGS}/pihole/:/etc/pihole/" -v "${DOCKER_CONFIGS}/dnsmasq.d/:/etc/dnsmasq.d/" -e ServerIP="${IP}" --restart=unless-stopped --cap-add=NET_ADMIN --dns=127.0.0.1 --dns=1.1.1.1 pihole/pihole:latest
Pour tenter de redémarrer le conteneur, j'utilise simplement
docker start pihole
L'impression semble indiquer qu'il s'agit d'une erreur d'autorisations, j'ai donc essayé d'exécuter à la fois Docker Desktop _et_ Powershell avec des autorisations élevées, mais j'obtiens toujours la même erreur. et quand je dis la même chose, je veux dire que c'est textuellement à chaque fois.

Pour ceux sur mac, essayez cette commande pour voir les processus et les arrêter (les autres commandes ne fonctionnaient pas pour moi):

sudo lsof -iTCP -sTCP:LISTEN -n -P

Le redémarrage de Windows m'a aidé.
Docker 2.1.0.3.38240

Le redémarrage de docker sur MAC OS X MOJAVE ne résout pas ce problème pour moi.
J'essaye d'exposer plusieurs ports, c'est-à-dire 5066, 5086, 8021 et quelques autres.

Courir avec sudo fonctionne pour moi.

Mon problème était avec le port 5000

$ docker ps

CONTAINER ID        IMAGE                            COMMAND                  CREATED             STATUS              PORTS                    NAMES
d21a21826483        web                        "watchexec --restart…"   3 weeks ago         Up 28 hours         0.0.0.0:5000->5000/tcp   web_1

Ensuite, après avoir arrêté le conteneur avec 5000 ports, cela m'a aidé.

$ docker stop d21a21826483

J'ai trouvé ce fil, et rien de ce qui précède ne m'a aidé.

J'utilise Ubuntu et j'ai dû utiliser:

sudo service docker restart

J'ai essayé prune et toutes les autres commandes et docker étaient sûrs que rien ne fonctionnait, mais après le redémarrage du service, tout a recommencé à fonctionner.

J'ai eu le même problème et j'ai essayé ce qui précède, mais aucun n'a fonctionné pour moi.
Cela a fonctionné en redémarrant Windows.

Pour n'importe lequel sur Windows, si vous rencontrez ce problème après avoir réveillé Windows du mode veille, le redémarrage de l'ordinateur résout le problème pour moi.
Il y avait un problème similaire précédent concernant la stimulation rapide sur Windows et je suppose que ces deux sont liés ...

Cela a résolu mon problème sur Windows:

  • docker-compose down
  • Fermez le bureau du docker.
  • Tuer le service docker
    image
  • Démarrez docker, une fenêtre contextuelle vous demandera d'activer le service docker via net.exe, acceptez
  • docker-compose up

Redémarrez Docker ... juste ça

C'est une excellente solution de contournement, mais le redémarrage indique un bogue et ce problème ne doit pas être résolu.

Ce qui a fonctionné pour moi était de réinitialiser le bureau du docker aux valeurs d'usine.

J'ai essayé ce qui précède sans succès. Je l'ai fait fonctionner en effaçant tout mon cache docker en exécutant:

docker ps -aq | xargs docker rm -f && \ docker images -q | xargs docker rmi -f && \ docker volume list -q | xargs docker volume rm -f

3 ans et ce bug est toujours bien vivant ...

J'ai le même bug. Tellement surpris que ce fil fonctionne jusqu'à présent.

sudo apachectl stop cela a fonctionné pour moi car il semblait qu'apache fonctionnait sur Mac

Windows 10:
docker ps -a
docker rm $ (docker ps -a -q)
docker-composer

J'ai le même bug. Tellement surpris que ce fil fonctionne jusqu'à présent.

Cela a fonctionné pour moi:

cd /usr/libexec/docker/
ln -s docker-proxy-current docker-proxy
service docker restart

Avoir les mêmes problèmes sur Oracle Linux. Le redémarrage du service Docker a aidé.

Cela a résolu mon problème sur Windows:

  • docker-compose down
  • Fermez le bureau du docker.
  • Tuer le service docker
    image
  • Démarrez docker, une fenêtre contextuelle vous demandera d'activer le service docker via net.exe, acceptez
  • docker-compose up

la solution ci-dessus fonctionne pour moi, merci.

lorsque docker est en cours d'exécution, je l'ai ci-dessous.
lorsque docker a redémarré, j'ai toujours ceci ci-dessous.
lorsque le service docker a été tué et redémarré, l'occupation du port a disparu, docker fonctionne à nouveau.

**netstat -aon|findstr "5601"**
  TCP    0.0.0.0:5601           0.0.0.0:0              LISTENING       9512
  TCP    192.168.6.202:55601    203.208.41.75:443      TIME_WAIT       0
  TCP    [::]:5601              [::]:0                 LISTENING       9512

**tasklist|findstr 9512**
com.docker.backend.exe        9512 Services                   0     10,916 K

J'avais ce problème sur Ubuntu 18.04, comme pour @ Jason-2020, le redémarrage du service docker a également libéré le port pour moi dans mon système.

Aussi illogique que cela puisse paraître, il suffit de redémarrer le service.

(N'a pas besoin d'effacer les caches, les anciens fichiers ou quoi que ce soit.)

pour le problème de Windows peut facilement résoudre:
redémarrez simplement votre docker et essayez de réexécuter le serveur.
image

À partir d'aujourd'hui, l'utilisation de W10 pose toujours ce problème.
Docker redémarré, le problème persiste.
Docker fermé et rouvert, ont toujours le problème.

Aucune des autres solutions n'a fonctionné pour moi: /

À partir d'aujourd'hui, l'utilisation de W10 pose toujours ce problème.
Docker redémarré, le problème persiste.
Docker fermé et rouvert, ont toujours le problème.

Aucune des autres solutions n'a fonctionné pour moi: /

Essayez avec la solution LoiCha. C'est la seule solution de contournement qui a réellement fonctionné pour moi.

Juste un avertissement, j'ai eu ce problème avec Amazon ECS (mode EC2), en essayant de lancer une nouvelle définition de tâche. Il s'avère que quelque chose d'autre écoutait déjà sur ce port dans l'hôte EC2. J'ai arrêté le processus et la définition de la tâche a pu démarrer normalement.

L'arrêt du service docker dans le gestionnaire de tâches a résolu mon problème sur W10

@ tsantos84 Docker s'exécutera dans une VM lorsque vous utilisez Docker pour Mac.

Essayez ce qui suit (je n'ai pas testé cela cependant):

* `docker rm -f $(docker ps -aq)` (will remove all of your containers)

* `docker network rm $(docker network ls -q)` (will remove all of your networks)

* `docker run --rm -v /var/lib/docker/network/files:/network busybox rm /network/local-kv.db`

Ensuite, redémarrez Docker pour Mac et vous devriez être prêt à aller +1

Je vous remercie! Cela m'a aidé à résoudre rapidement le problème.

@ tsantos84 Docker s'exécutera dans une VM lorsque vous utilisez Docker pour Mac.
Essayez ce qui suit (je n'ai pas testé cela cependant):

* `docker rm -f $(docker ps -aq)` (will remove all of your containers)

* `docker network rm $(docker network ls -q)` (will remove all of your networks)

* `docker run --rm -v /var/lib/docker/network/files:/network busybox rm /network/local-kv.db`

Ensuite, redémarrez Docker pour Mac et vous devriez être prêt à aller +1

Je vous remercie! Cela m'a aidé à résoudre rapidement le problème.

Salut @ fede-r1c0, je ne sais pas pourquoi vous m'avez mentionné et vous vouliez probablement marquer un autre utilisateur. Quoi qu'il en soit, je suis heureux que vous résolviez votre problème. 👍

@jamshid
Pouvez-vous poster le o / p de sudo netstat -nlp | grep 8123 . Merci.

et sudo service {nameOfService} stop

J'ai rencontré le même comportement, mais pour le remplacement du service, en créant le docker-compose.override.yml . Les fichiers utilisés:

docker-compose.yml :

version: '3.2'
services:
  app:
    build:
      context: ./
    ports:
     - "8000:80"
    volumes:
     - ./:/app

docker-compose.overrride.yml :

version: '3.2'
services:
  app:
    ports:
     - "8001:80"

Cela me donne une erreur INATTENDUE suivante:

ERROR: for my_app_1  Cannot start service app: driver failed programming external connectivity on endpoint my_app_1 (9235372fe636fba32be67f9f101a3432139c691a41fc6d207e53c98e25139a29): Bind for 0.0.0.0:8000 failed: port is already allocated

ERROR: for app  Cannot start service app: driver failed programming external connectivity on endpoint my_app_1 (9235372fe636fba32be67f9f101a3432139c691a41fc6d207e53c98e25139a29): Bind for 0.0.0.0:8000 failed: port is already allocated
ERROR: Encountered errors while bringing up the project.

Je m'attendais à ce que la directive ports dans docker-compose.override.yml écrase la même chose dans le docker-compose.yml (le port 8000 sur ma machine est déjà alloué par une autre application, c'est pourquoi je essayé le remplacement) mais cela ne se produit pas, ce qui est faux et semble être un bogue.

Système d'exploitation: Windows 10
Docker: 19.03.12, build 48a66213fe

Dans mon cas, le problème était dû à l'exécution de consul localement mais aussi dans un conteneur.

Pour moi, c'était lié au pare-feu, sur CentOS 7, exécutez votre docker normalement lorsque vous travaillez, puis arrêtez firewalld ou redémarrez-le, essayez maintenant de redémarrer ce conteneur de docker, échoue avec cette erreur. Redémarrez le service docker et réessayez ... fonctionne bien.

J'ai rencontré le même comportement.
Cela a résolu mon problème sur centos7:
ps -ef | grep docker
kill the "...dockerd -H fd:// --containerd=/run/containerd/containerd.sock" process

J'ai trouvé ce fil, et rien de ce qui précède ne m'a aidé.

J'utilise Ubuntu et j'ai dû utiliser:

sudo service docker restart

J'ai essayé prune et toutes les autres commandes et docker étaient sûrs que rien ne fonctionnait, mais après le redémarrage du service, tout a recommencé à fonctionner.

JE VOUS REMERCIE! HOLY FK, J'ai passé une journée entière à essayer de résoudre ce problème.
L'ANNÉE EST 2020, C'EST 4 ANS ET CE PROBLÈME EXISTE TOUJOURS. WTF

Cette page vous a été utile?
5 / 5 - 1 notes