[ROZWIĄZANY] Docker & Windows 10: Error starting userland proxy

[ROZWIĄZANY] Docker & Windows 10: Error starting userland proxy
Photo by Tj Holowaychuk on Unsplash

Z dobrodziejstwa docker’ów zazwyczaj korzystam z poziomu Linuxa, ale tym razem zmuszony byłem powalczyć z nimi pod Windows 10. Po kilku minutach kolejny raz przekonałem się, że pod Linuxem wszystko jest łatwiejsze, ponieważ co rusz napotykałem jakieś problemy z poprawnym i stabilnym działaniem Docker for Windows. Ale do rzeczy, w czym był problem?

Problem

Uruchamiamy kontener i otrzymujemy błąd:

Starting docker_jenkins_1 ... error

Starting docker_nexus_1   ...

 

ERROR: for docker_jenkins_1  Cannot start service jenkins: driver failed programming external connectivity on endpoint docker_jenkins_1 (f275652123e7c423e6cb482efc6bf88775b1b971c971b3f4e2f30010a3a4debf): Error starting userland proxy: listeStarting docker_nexus_1   ... error

 

ERROR: for docker_nexus_1  Cannot start service nexus: driver failed programming external connectivity on endpoint docker_nexus_1 (bf3bfd7a65e23a2f0625d8389689359dc7990599a6fac0bd13aed0cf00619f32): Error starting userland proxy: listen tcp 0.0.0.0:8081: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted.

 

ERROR: for jenkins  Cannot start service jenkins: driver failed programming external connectivity on endpoint docker_jenkins_1 (f275652123e7c423e6cb482efc6bf88775b1b971c971b3f4e2f30010a3a4debf): Error starting userland proxy: listen tcp 0.0.0.0:50000: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted.

 

ERROR: for nexus  Cannot start service nexus: driver failed programming external connectivity on endpoint docker_nexus_1 (bf3bfd7a65e23a2f0625d8389689359dc7990599a6fac0bd13aed0cf00619f32): Error starting userland proxy: listen tcp 0.0.0.0:8081: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted.

ERROR: Encountered errors while bringing up the project.

Przyczyna

Problem tkwi w funkcji Fast Startup (Szybki Start), która została wprowadzona w Windows 10. Ma ona na celu przyspieszyć uruchamianie systemu Windows. Ale nic nie dzieje się magicznie. Za buzz word “Fast Startup” kryję się tak naprawdę swego rodzaju hibernacja i cache pewnych elementów aplikacji. W wyniku czego przy ponowym uruchumowieniu systemu nie są one uruchamine na nowo, tylko korzysta z cache’u. I to właśnie sprawia, że pomimo restartu czy wyłączenia i ponownego uruchomienia komtputera nadal otrzymujemy ten błąd, że port jest już w urzyciu.,

Rozwiązanie

Aby rozwiązać powyższy problem wystarczy wyłączyć opcje Fast Startup. Możemy to zrobić np. na dwa poniższe sposoby:

1# Sposób

  1. Otwieramy Menu Start i wpisujemy “Opcje zasilania”
  2. Klikamy w lewym bocznym menu: “Wybierz działanie przycisków zasilania”
  1. W sekcji “Opcje zamykania” ODZNACZMY checkbox: “Włączy szybkie uruchamianie (zalecane).
  2. Uruchom ponownie komputer. Pamiętaj, żeby przed restartem zamknąć wszystkie uruchomione kontenery.

2# Sposób

Drugi sposób polega na zmianie wpisu w rejestrze systemu.

  1. Uruchamiamy Edytor Rejestru lub wpisujemy w Menu Start: regedit.
  2. Szukamy wpisu poniżej, otwieramy plik: HiberbootEnabled i zmieniamy wartość:
    • 0 – wyłącz Fast Startup
    • 1 – włącz Fast Startup
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Power

Dobra praktyka

Zauważyłem niestety, że pomimo wyłączenia Szybkiego Startu czasem otrzymywałem ponownie ten błąd. Zauważyłem również, że działo się to tylko wtedy, kiedy nie wyłączyłem wszystkich uruchomionych kontenerów przed restartem lub wyłączeniem komputera, takżę…

Zawsze wyłączaj wszystkie kontenery po skończonej pracy 🙂

Jeśli spodobał Ci się ten post to zostaw proszę komentarz poniżej oraz udostępnij ten post na swoim Facebook’u, Twitter’ze, LinkedIn lub innej stronie z mediami społecznościowymi.
Dzięki!

Leave a Reply

avatar
  Subscribe  
Powiadom o
Close Menu