Débardeur. Erreur: Impossible de démarrer le conteneur: le port a déjà été alloué
Je suis en train de travailler avec Docker et quand j'ai d'abord créé un récipient, j'ai réussi à travailler correctement avec celui-ci. Aujourd'hui, j'ai redémarré mon ordinateur et me mets à travailler avec le conteneur Docker à nouveau.
J'ai essayé de les "activer" le conteneur comme ceci:
docker run -it --rm -p 5000:5000 -v `pwd`:/app myproject
Et c'est le message que j'obtiens en retour:
WARNING: Local (127.0.0.1) DNS resolver found in resolv.conf and containers can't use it. Using default external servers : [8.8.8.8 8.8.4.4]
2014/07/28 12:34:32 Error: Cannot start container a152dd9040ab4be0f20ace96ba4a9b0a3c50fa89034512c2b9fcb986db912027: port has already been allocated
J'ai donc essayé de trouver ce processus est à l'écoute sur le port 5000 et le tuer. Juste comme ça:
# netstat -tulpn | grep :5000
tcp6 0 0 :::5000 :::* LISTEN 3992/docker.io
# kill -9 3992
J'ai aussi essayé de redémarrer le panneau de service, comme ceci:
sudo service docker.io restart
Mais aucune de ces choses ont travaillé. Je reçois toujours le même message d'erreur lorsque vous essayez d'activer mon conteneur:
# docker run -it --rm -p 5000:5000 -v `pwd`:/app myproj
WARNING: Local (127.0.0.1) DNS resolver found in resolv.conf and containers can't use it. Using default external servers : [8.8.8.8 8.8.4.4]
2014/07/28 12:34:14 Error: Cannot start container b28ac5c4a425068ac1827bade6dd89e95be32f3e94c982300eba006822971ab1: port has already been allocated
Googler pour trouver une solution, j'ai trouvé que cela semble être une connues question, mais peut-être que vous pouvez m'aider à trouver un moyen de sortir de ce problème.
Mise à JOUR:
Juste comme demandé par @Marcus Hughes , c'est la sortie de docker ps
:
$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3fdfc9ecf30f 7e0ca0814a33 /bin/sh -c composer 4 hours ago Up About an hour 0.0.0.0:5000->5000/tcp naughty_galileo
Et si je ne docker ps -a
, c'est ce que j'obtiens:
$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
69400a0e21f5 stenocaption-server:latest /bin/sh -c composer About a minute ago Exit 0 agitated_feynman
a3c352d48ab5 stenocaption-server:latest /bin/sh -c composer 6 minutes ago Exit 0 grave_shockley
4c3c823bda55 stenocaption-server:latest /bin/sh -c composer 2 hours ago Exit 0 condescending_heisenberg
b9083a0af2cd 7e0ca0814a33 /bin/sh -c composer 2 hours ago Exit 0 kickass_lumiere
0d51ea8c4377 7e0ca0814a33 /bin/sh -c composer 2 hours ago Exit 0 sick_ritchie
a152dd9040ab 7e0ca0814a33 /bin/sh -c composer 2 hours ago Exit 0 happy_thompson
b28ac5c4a425 7e0ca0814a33 /bin/sh -c composer 2 hours ago Exit 0 cocky_franklin
d449f40487ca 7e0ca0814a33 /bin/sh -c composer 2 hours ago Exit 0 evil_torvalds
b485da98ca6d 7e0ca0814a33 /bin/sh -c composer 2 hours ago Exit 0 tender_nobel6
8b73b154c8aa 7e0ca0814a33 /bin/sh -c composer 2 hours ago Exit 0 dreamy_ptolemy
10d327c46d95 7e0ca0814a33 /bin/sh -c composer 2 hours ago Exit 0 boring_morse
a3397c0c4dfb 7e0ca0814a33 /bin/sh -c composer 2 hours ago Exit 0 thirsty_engelbart
e6440629fac1 7e0ca0814a33 /bin/sh -c composer 3 hours ago Exit 0 distracted_bohr
cb718204384e 7e0ca0814a33 /bin/sh -c composer 3 hours ago Exit 0 nostalgic_mclean
ca62ccc30227 7e0ca0814a33 /bin/sh -c composer 3 hours ago Exit 0 evil_heisenberg
83ed0727883f 7e0ca0814a33 /bin/sh -c composer 3 hours ago Exit 0 nostalgic_curie
1100e926ef29 7e0ca0814a33 /bin/sh -c composer 3 hours ago Exit 0 tender_nobel
1ed76e31d8f5 7e0ca0814a33 /bin/sh -c composer 3 hours ago Exit 0 grave_hawking
ad429a4ab116 7e0ca0814a33 /bin/sh -c composer 3 hours ago Exit 0 condescending_nobel
5790e0e9c21f 7e0ca0814a33 /bin/sh -c composer 4 hours ago Exit 0 boring_curie
3fdfc9ecf30f 7e0ca0814a33 /bin/sh -c composer 4 hours ago Up About an hour 0.0.0.0:5000->5000/tcp naughty_galileo
7372b8327065 b0d5a13e5ea7 /bin/sh -c apt-get-i 40 hours ago Exit 127 high_torvalds
d4482ca96df9 10aac624035d /bin/sh -c apt-get i 40 hours ago Exit 0 sad_pare
0ae7489bd53e 6edd40908159 /bin/sh -c apt-get i 41 hours ago Exit 0 dreamy_davinci
13c1a8670908 ubuntu:14.04 /bin/sh -c apt-get u 41 hours ago Exit 0 loving_babbage
18e20ff7f4ec ubuntu:14.04 /bin/sh -c apt-get u 41 hours ago Exit 1 stupefied_poincare
0965776b2ee9 ubuntu:14.04 /bin/sh -c apt-get u 41 hours ago Exit 1 goofy_davinci
aa3d871f6d1c ubuntu:14.04 /bin/sh -c apt-get u 41 hours ago Exit 1 insane_pasteur
cb266936771d ubuntu:14.04 /bin/sh -c apt-get u 41 hours ago Exit 1 distracted_turing
10d25a9c965b ubuntu:14.04 /bin/sh -c apt-get u 41 hours ago Exit 1 kickass_ptolemy
729afe65b3f5 ubuntu:14.04 /bin/sh -c apt-get u 42 hours ago Exit 1 dreamy_tesla
a53c5707e667 ubuntu:14.04 /bin/sh -c apt-get u 42 hours ago Exit 1 ecstatic_bohr
ec97aaae1bda ubuntu:14.04 /bin/sh -c apt-get u 42 hours ago Exit 1 romantic_bell
13fe8539439c ubuntu:14.04 /bin/sh -c apt-get u 42 hours ago Exit 1 romantic_shockley
deaff10c2ed3 ubuntu:14.04 /bin/sh -c apt-get u 42 hours ago Exit 1 trusting_shockley
c49494c24595 ubuntu:14.04 /bin/sh -c apt-get u 42 hours ago Exit 1 loving_bell
3972c67fbd92 ubuntu:14.04 /bin/sh -c apt-get u 42 hours ago Exit 1 stupefied_euclid
- Pouvez-vous montrer la sortie de
docker ps
? - Je viens de mettre à jour mon premier post avec la
docker ps
de sortie de la commande. Espérons qu'il jette une certaine lumière sur la façon de résoudre ce problème. - Il ressemble à
3fdfc9ecf30f
utilise le port5000
. Pouvez-vous fairedocker kill 3fdfc9ecf30f
? Ou est le conteneur important? - Merci, cela a fonctionné! Le
docker kill
est juste ce dont j'avais besoin. Si vous le souhaitez, vous pouvez poster la réponse et je vais le marquer comme valide. - Sur Fedora je l'ai résolu en
systemctl restart docker.service
- Vous devriez retirer votre sorti de conteneurs essayez ceci:
docker rm $(docker ps -a | grep Exit | awk '{print $1}')
Vous devez vous connecter pour publier un commentaire.
De la
docker ps
de sortie, il est un conteneur qui est à l'écoute sur le port5000
comme vous pouvez le voir à partir de la0.0.0.0:5000->5000/tcp
en vertu de laports
colonne.Vous pouvez tuer ce conteneur avec
docker kill container
. Qui sera gratuit jusqu'au port. Dans votre cas:docker ps
de sortie sur mon OSX El Cap/Docker 1.12/Composer 1.8 installation, mais lorsque j'ai redémarré le Docker application elle-même, à partir de la OSX barre système, il effacé tout ce qu'avait capturé 5000. Je ne vois pas ce qui pourrait avoir conduit à 5000 être lié auparavant, mais je ne peux pas dire qu'il n'était pas un errant conteneur qui traînent, comme je suis toujours n00b-ing autour d'ici.docker kill $(docker ps -q)
a également été utile pour moi.Je l'ai résolu en redémarrant le panneau de service:
sudo service docker restart
Note: je suis sous Linux Mint, par la manière.
Une raison que j'ai rencontré est que dans certaines versions de docker (pré 1.2), il y a un bug où s'il détecte un port est déjà attribué (peut-être même d'un système, pas de menu fixe exécuter, comme les programmes de nginx), il continuera à ne pas réaffecter même si vous arrêtez le conflit chose, jusqu'à ce que vous redémarrez docker.
Vérifier que rien d'autre n'utilise le port, puis redémarrez docker.
(service de docker.io redémarrer)
référence: https://github.com/docker/docker/issues/6476
Pour les utilisateurs de Windows, en citant le Docker documentation:
En outre, cette commande arrête l'exécution de tous les conteneurs: