泊坞窗。 错误:无法启动容器:端口已被分配

我正在和Docker合作,当我第一次创build一个容器时,我设法正确地使用它。 今天,我重新启动了我的电脑,并设置自己再次与Docker容器一起工作。

我试图像这样激活容器:

docker run -it --rm -p 5000:5000 -v `pwd`:/app myproject 

这是我回来的信息:

 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 

所以我试图找出哪些进程正在监听端口5000并杀死它。 像这样:

 # netstat -tulpn | grep :5000 tcp6 0 0 :::5000 :::* LISTEN 3992/docker.io # kill -9 3992 

我也尝试重新启动泊坞窗服务,如下所示:

 sudo service docker.io restart 

但是这些都没有解决。 尝试激活我的容器时,仍然收到相同的错误消息:

 # 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 

谷歌search解决scheme,我发现这似乎是一个已知的问题 ,但也许你可以帮我find一个解决这个问题的办法。

更新:

就像@Marcus Hughes所要求的那样,这是docker 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 

如果我做docker ps -a ,这是我得到:

 $ 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 

docker ps输出中,有一个容器正在监听端口5000正如您可以从ports列下的0.0.0.0:5000->5000/tcp所看到的那样。

你可以用docker kill container杀死这个docker kill container 。 在哪一点它将释放港口。 在你的情况下:

 docker kill 3fdfc9ecf30f 

我遇到的一个原因是,在某些版本的docker(1.2之前版本)中,如果检测到端口已被分配(可能甚至是系统,而不是docker run,像nginx这样的程序),它会继续即使你停止冲突的事情也不能重新分配,直到你重新启动docker。

检查没有其他人正在使用该端口,然后重新启动泊坞窗。 (服务docker.io重新启动)

参考: https : //github.com/docker/docker/issues/6476