Докер. Ошибка: не удается запустить контейнер: порт уже выделен

Я работаю с Docker, и когда я впервые создал контейнер, мне удалось работать с ним должным образом. Сегодня я перезагрузил свой компьютер и снова начал работать с контейнером 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

Googling для решения, я обнаружил, что это, похоже, известная проблема, но, возможно, вы можете помочь мне найти выход из этой проблемы.

ОБНОВИТЬ:

Так же, как просил @Marcus Hughes, это вывод 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

Ответы

Ответ 1

Из вывода docker ps имеется контейнер, который прослушивает порт 5000 как вы можете видеть из 0.0.0.0:5000->5000/tcp под столбцом ports.

Вы можете убить этот контейнер с docker kill container. В этот момент он освободит порт. В твоем случае:

docker kill 3fdfc9ecf30f

Ответ 2

Я исправил его, перезапустив службу докеров:

sudo service docker restart

Примечание. Кстати, я использую Linux Mint.

Ответ 3

Одна из причин, по которой я столкнулся, заключается в том, что в некоторых версиях docker (pre 1.2) ошибка в том, что если он обнаруживает, что порт уже назначен (возможно, даже для системы, а не для запуска докеров, такой как nginx), она будет продолжать не переназначьте его, даже если вы остановите противоречивую вещь, пока не перезапустите докер.

Убедитесь, что ничего не используется в этом порту, а затем перезапустите докер. (перезагрузка службы docker.io)

ссылка: https://github.com/docker/docker/issues/6476

Ответ 4

Используйте docker stop $(docker ps | grep ":PORT_NUMBER" | awk '{print $1}')

Просто замените номер порта на порт, на котором работает докер-контейнер.

Например: Запуск docker stop $(docker ps | grep ":8082" | awk '{print $1}') остановит контейнер, работающий на порту 8082

Ответ 5

Для пользователей Windows, цитирование из документации Docker:

В системах Windows CTRL+C не останавливает контейнер. Итак, сначала CTRL+C чтобы получить подсказку (или откройте другую оболочку), затем введите docker container ls чтобы просмотреть список запущенных контейнеров, а затем docker container stop <Container NAME or ID> чтобы остановить контейнер. В противном случае вы получите сообщение об ошибке от демона при попытке перезапустить контейнер.

Кроме того, эта команда останавливает все запущенные контейнеры:

docker stop $(docker ps -q)