[ Error starting userland proxy ] 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
Error starting userland proxy: 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
- Otwieramy Menu Start i wpisujemy „Opcje zasilania”
- Klikamy w lewym bocznym menu: „Wybierz działanie przycisków zasilania”
![Docker & Windows 10: Error starting userland proxy - prosty powód! [ROZWIĄZANY] 2 Docker & Windows 10: Error starting userland proxy [ROZWIĄZANY]](https://bigdata-etl.com/wp-content/uploads/2019/10/zasilanie1-1-1024x609.png)
- W sekcji „Opcje zamykania” ODZNACZMY checkbox: „Włączy szybkie uruchamianie (zalecane).
- Uruchom ponownie komputer. Pamiętaj, żeby przed restartem zamknąć wszystkie uruchomione kontenery.
![Docker & Windows 10: Error starting userland proxy - prosty powód! [ROZWIĄZANY] 3 Docker & Windows 10: Error starting userland proxy [ROZWIĄZANY]](https://bigdata-etl.com/wp-content/uploads/2019/10/zasilanie2-1024x609.png)
2# Sposób
Drugi sposób polega na zmianie wpisu w rejestrze systemu.
- Uruchamiamy Edytor Rejestru lub wpisujemy w Menu Start: regedit.
- 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żę…