Подтвердить что ты не робот

Docker: драйвер не выполнил программирование внешнего подключения на веб-сервере конечной точки

Я нахожусь на Mac. Попытка запустить пример докера. Следуя этой документации: https://docs.docker.com/docker-for-mac/ Это моя команда:

docker run -d -p 80:80 --name webserver nginx

Но я получаю эту ошибку:

docker: Error response from daemon: driver failed programming external connectivity on endpoint webserver (bd57efb73c738e3b271db180ffbee0a56cae86c8193242fbc02ea805101df21e): Error starting userland proxy: Bind for 0.0.0.0:80: unexpected error (Failure EADDRINUSE).

Нужна помощь.

4b9b3361

Ответ 1

Из вашего сообщения об ошибке EADDRINUSE указывает, что порт 80 уже используется либо на докере VM, либо, возможно, прямо на вашем ноутбуке. Вы можете либо остановить все, что работает на этом порту, либо изменить порт, используемый в вашей команде Docker. Чтобы переключиться на внешний порт 8080, используйте:

docker run -d -p 8080:80 --name webserver nginx

Ответ 2

Попробуйте перезапустить докер. Это обычно работает для меня.

Ответ 3

У меня была такая же проблема с одним из моих контейнеров. Я попробовал все, но когда ничего не получилось, я попробовал следующее и снова успешно запустил контейнер

 - sudo service docker stop
 - sudo rm /var/lib/docker/network/files/local-kv.db
 - sudo service docker start

Ответ 4

В последнее время эта проблема стала часто происходить в Windows. Вы можете попробовать перезапустить Docker или вы можете вручную остановить Docker перед выключением Windows - Docker запускается корректно при перезагрузке. 24.07.2008 открыта проблема докера, более подробную информацию можно найти по адресу https://github.com/docker/for-win/issues/1967

Ответ 5

Кажется, это проблема несовместимости с "быстрой загрузкой" Windows, как описано здесь: (просто перезапустите службу докера), и это может сработать.

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

Это вызвано несовместимостью с Docker и fastboot. Вы можете либо убедиться, что остановили все контейнеры перед выключением Windows, либо отключить fastboot в настройках питания Windows, выполнив следующие действия:

CTRL+R > "powercfg.cpl" > "Choose what the power buttons do" > "Change settings that are currently unavailable" > Deselect "Turn on fast start-up"

Вы также можете отключить fastboot с помощью одной команды в powershell, если вам это удобно:

Set-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Power\' -Name HiberbootEnabled -Value 0

Ответ 6

пользователи windows: описание докера

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

У меня была та же проблема, я думал, что с помощью CTRL + C остановил контейнер, но это не так, любой ответ выше работает, потому что все они останавливают контейнеры, перезапускают докер или останавливают контейнер.

Я предпочитаю:

docker container ls #list containers running
docker stop [container id] #replace [container id] with the container id running

Ответ 7

Остановите все работающие Docker контейнеров docker ps -a -q затем остановите Docker на вашем компьютере и перезапустите его.

Ответ 8

В моем случае порт 80 является портом по умолчанию для веб-сервера, и поэтому он защищен. Я изменил привязку к порту 60: 8080, чтобы избежать более глубоких проблем. Изменение привязки к другому порту позволяет мне выполнить запуск докера и нажать его в браузере по адресу http://ip:60