window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(function () { var w = window if (w.LeadBooster) { console.warn('LeadBooster już istnieje') } else { w.LeadBooster = { q: [], on: function (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: function (n) { this.q.push({ t: 't', n: n }) }, } } })() Bezbolesna droga do WSL 2 z Dockerem - The Codest
The Codest
  • O nas
  • Nasze Usługi
    • Software Development
      • Frontend Development
      • Backend Development
    • Zespoły IT
      • Programiści frontendowi
      • Backend Dev
      • Inżynierowie danych
      • Inżynierowie rozwiązań chmurowych
      • Inżynierowie QA
      • Inne
    • Konsultacje IT
      • Audyt i doradztwo
  • Branże
    • Fintech i bankowość
    • E-commerce
    • Adtech
    • Healthtech
    • Produkcja
    • Logistyka
    • Motoryzacja
    • IOT
  • Wartość dla
    • CEO
    • CTO
    • Delivery Managera
  • Nasz zespół
  • Case Studies
  • Nasze Know How
    • Blog
    • Meetups
    • Webinary
    • Raporty
Kariera Skontaktuj się z nami
  • O nas
  • Nasze Usługi
    • Software Development
      • Frontend Development
      • Backend Development
    • Zespoły IT
      • Programiści frontendowi
      • Backend Dev
      • Inżynierowie danych
      • Inżynierowie rozwiązań chmurowych
      • Inżynierowie QA
      • Inne
    • Konsultacje IT
      • Audyt i doradztwo
  • Wartość dla
    • CEO
    • CTO
    • Delivery Managera
  • Nasz zespół
  • Case Studies
  • Nasze Know How
    • Blog
    • Meetups
    • Webinary
    • Raporty
Kariera Skontaktuj się z nami
Strzałka w tył WSTECZ
2020-01-21
Software Development

Bezbolesny sposób na WSL 2 z Docker

Łukasz Kolko

Wprowadzając Windows Subsystem for Linux (WSL), Microsoft dał programistom możliwość uruchamiania środowiska GNU/Linux bezpośrednio w systemie Windows, bez modyfikacji, bez narzutu maszyny wirtualnej. Jest to świetne rozwiązanie, ponieważ wielu deweloperów używa jednego systemu do programowania, a drugiego do rozrywki.

WSL jest wciąż rozwijany, ale obecnie nadaje się do nowoczesnych zastosowań. rozwój oprogramowaniazarówno w pierwszej, jak i drugiej wersji. Przeglądając problemy i pytania zgłaszane w Internecie, większość z nich wydaje się dotyczyć integracji WSL z Dockerem, zwłaszcza jeśli chodzi o aktualizację z WSL 1 do WSL 2.

Ten artykuł rozwieje wszelkie niejasności i pomoże bezboleśnie przejść przez ten proces. Jeśli nie masz WSL 1 i chcesz mieć WSL 2 z Dockerem, możesz przejść od razu do ostatniego rozdziału.

Co zyskasz?

- Najnowsze stabilne jądro Linux (dostrojone przez Microsoft). WSL 1 ma interfejs jądra kompatybilny z Linuksem bez jądra Linuksa kod.

- Zwiększona wydajność IO plików. Do 20x szybciej w porównaniu do WSL 1 podczas rozpakowywania spakowanego pliku tarball, około 2-5x szybciej podczas używania git clone, npm install i cmake w różnych projektach.

- Pełna kompatybilność z wywołaniami systemowymi. Pliki binarne Linuksa używają wywołań systemowych do wykonywania wielu funkcji, takich jak dostęp do plików, żądanie pamięci, tworzenie procesów i wiele innych. Podczas gdy WSL 1 korzystał z warstwy translacji zbudowanej przez WSL zespółWSL 2 zawiera własne jądro Linux z pełną kompatybilnością wywołań systemowych.

- Pliki przechowywane na natywnej partycji ext4 na dysku wirtualnym.

- Bardzo łatwy sposób na integrację z Docker.

Myślę, że dla większości użytkowników wydajność IO plików i łatwa integracja z dockerem to wystarczające powody.

Idziemy!

Zakładam, że masz najnowszą stabilną wersję systemu Windows 10 Pro. Na dzień dzisiejszy jest to wydanie 1909.

Dołącz do insiderów Windows

Obecnie WSL 2 jest dostępny tylko dla systemu Windows 10 w powolnym pierścieniu insiderów. Z tego co wiem, stabilna wersja powinna być dostępna w maju 2020 roku (wydanie 20H1). Powolny pierścień jest dość bezpiecznym rozwiązaniem dla użytkowników, którzy chcą mieć nowe funkcje nieco wcześniej, już wstępnie przetestowane przez użytkowników szybkiego pierścienia. Powolny pierścień otrzymuje aktualizacje systemu raz lub dwa razy w miesiącu. O zmianach w insiders release można przeczytać w dokumencie Microsoftu o nazwie Flight Hub.

Aby dołączyć, wystarczy śledzić oficjalną stronę Microsoft przewodnik. Jest to bardzo proste i zajmuje około 15 minut bez utraty jakichkolwiek danych osobowych.

Aktualizacja WSL 1 do WSL 2

Postępuj zgodnie z oficjalnym przewodnik. Jest to również bardzo proste, kilka poleceń powłoki i gotowe! W zależności od tego, jak rozbudowany był Linux pod WSL 1, może to zająć trochę czasu. Niestety, Microsoft nie umieścił paska postępu ani informacji o wymaganym czasie, więc po prostu bądź cierpliwy.

Sprzątanie

Jest to najważniejsza część dla prawidłowej współpracy WSL 2 i Dockera. Po aktualizacji do WSL 2 wielu użytkowników próbuje zmusić swoją wersję Dockera do współpracy, nie zdając sobie sprawy, że zespół Dockera, specjalnie dla WSL 2, przygotował wydanie, które zrobi wszystko za nas. Jest to ostatnie wydanie wersji Docker Edge (ich nazwa beta) - "Docker Desktop WSL 2 backend". Ta wersja, 2.1.7.0, jest dobrze dopracowana i jest kandydatem do nadchodzącego stabilnego wydania.

Użytkownicy, którzy nie mieli WSL 1 lub właśnie zainstalowali nową wersję WSL 2, mają szczęście i mogą od razu przejść do ostatniego rozdziału.

Jeśli nie wyczyściłeś swojego Dockera (w ogóle lub poprawnie) i nie zainstalowałeś odpowiedniej wersji Dockera dla WSL 2, możesz napotkać kilka typowych błędów, np, Nie można połączyć się z demonem Docker pod adresem tcp://localhost:2375", "Czy demon Docker jest uruchomiony?itp. W większości przypadków stracisz czas, jeśli nie wiesz, że musisz przyjąć nowe podejście, próbując rozwiązać te błędy. Aby to zrobić, należy najpierw całkowicie usunąć Dockera z WSL i Windows, co nie jest oczywistym krokiem.

Najczęstszym przykładem nieusuniętych pozostałości jest stare podejście Dockera do ustawiania zmiennej środowiskowej DOCKER_HOST=tcp://localhost:2375 w ramach WSL 1 do współpracy z opcją Windows Docker Wystawienie demona na tcp://localhost:2375 bez TLS.

Jak całkowicie usunąć Dockera z WSL (Ubuntu)?

  1. Jako oficjalny Docker dokumenty powiedzieć:

sudo apt-get remove docker docker-engine docker.io containerd runc

Z pewnością można dodać do tej listy docker-ce i docker-ce-cli.

  1. Zidentyfikuj wszystkie posiadane pakiety docker za pomocą dpkg -l | grep -i docker i usunąć, jeśli nadal istnieją.
  2. Usunąć wszystkie pozostałości:
sudo rm -rf /var/lib/docker /etc/docker /etc/apparmor.d/docker /var/run/docker.sock /usr/local/bin/docker-compose /etc/docker

sudo groupdel docker ~/.docker

  1. Ten krok jest przeznaczony dla zaawansowanych użytkowników, więc bądź ostrożny. Prawdopodobnie nie musisz go wykonywać.

Znajdź wszystkie doker i usuń te, których jesteś pewien.

sudo find / -name "*docker*"

  1. Sprawdź zawartość wszystkich poniższych plików pod kątem doker wystąpienia takie jak np. zmienna środowiskowa DOCKER_HOST=tcp://localhost:2375.

Pliki te można edytować za pomocą edytora Nano, nano ~/.bashrclub Visual Studio Code, kod ~/.bashrc.

~/.bashrc
~/.bash_aliases
~/.bash_profile
~/.bash_login
~/.profile
/etc/bash.bashrc
/etc/profile

Jak całkowicie usunąć Dockera z systemu Windows?

  1. Odinstaluj w normalny sposób w systemie Windows Aplikacje i funkcje panel.
  2. Usuń wszystko poniżej, jeśli istnieje:
C:Program FilesDocker
C:ProgramDataDockerDesktop
C:Users[USERNAME].docker
C:Users[USERNAME]AppDataLocalDocker
C:Users[USERNAME]AppDataRoamingDocker
C:Users[USERNAME]AppDataRoamingDocker Desktop

Co dalej?

Zainstaluj najnowszą wersję Docker Desktop Edge ze strony tutaj i postępuj zgodnie z instrukcjami podanymi na oficjalnej stronie dokumenty. Wszystko sprowadza się do kilku kliknięć.

Jeśli wszystko pójdzie dobrze, powinieneś otrzymać dane wyjściowe z wsl -l -v w ten sposób:

  NAZWA STAN WERSJA
  Ubuntu-18.04 Działająca 2
  docker-desktop Uruchomiono 2
  docker-desktop-data Uruchomiono 2

To wszystko. Docker stworzył własne kontenery WSL docker-desktop i docker-desktop-data. Niektóre z dostępnych samouczków lub porad mogą być mylące, ponieważ tym razem nie należy instalować ani konfigurować niczego związanego z Dockerem w ramach dystrybucji WSL Linux. Należy o tym pamiętać. Po wyczyszczeniu powinien od razu dobrze działać.

Dodatkowo...

Konfiguracja WSL 2 z Docker może być bezbolesnym procesem z kilkoma prostymi krokami. Rozpocznij od aktualizacji listy pakietów przy użyciu polecenia "sudo apt-get update", aby upewnić się, że masz najnowsze informacje o wersji. Rozwiąż wszelkie brakujące zależności za pomocą "sudo apt-get install -y build-essential" dla płynnej instalacji. Instalacja Silnik Docker z "sudo apt-get install -y docker-engine", aby bez wysiłku budować, uruchamiać i zarządzać kontenerami. Uruchom "sudo docker run", a następnie nazwę obrazu, aby uruchomić kontenery. Aby zoptymalizować środowisko, okresowo uruchamiaj "sudo docker system prune", aby usunąć nieużywane kontenery i zwolnić miejsce na dysku. Dzięki tym krokom można cieszyć się płynną integracją WSL 2 i Docker w celu wydajnej konteneryzacji w przepływie pracy programistycznej.

Powiązane artykuły

Software Development

Tworzenie przyszłościowych aplikacji internetowych: spostrzeżenia zespołu ekspertów The Codest

Odkryj, w jaki sposób The Codest wyróżnia się w tworzeniu skalowalnych, interaktywnych aplikacji internetowych przy użyciu najnowocześniejszych technologii, zapewniając płynne doświadczenia użytkowników na wszystkich platformach. Dowiedz się, w jaki sposób nasza wiedza napędza transformację cyfrową i biznes...

THEECODEST
Software Development

10 najlepszych firm tworzących oprogramowanie na Łotwie

Dowiedz się więcej o najlepszych łotewskich firmach programistycznych i ich innowacyjnych rozwiązaniach w naszym najnowszym artykule. Odkryj, w jaki sposób ci liderzy technologiczni mogą pomóc w rozwoju Twojej firmy.

thecodest
Rozwiązania dla przedsiębiorstw i scaleupów

Podstawy tworzenia oprogramowania Java: Przewodnik po skutecznym outsourcingu

Zapoznaj się z tym niezbędnym przewodnikiem na temat skutecznego tworzenia oprogramowania Java outsourcing, aby zwiększyć wydajność, uzyskać dostęp do wiedzy specjalistycznej i osiągnąć sukces projektu z The Codest.

thecodest
Software Development

Kompletny przewodnik po outsourcingu w Polsce

Wzrost liczby outsourcing w Polsce jest napędzany przez postęp gospodarczy, edukacyjny i technologiczny, sprzyjający rozwojowi IT i przyjazny klimat dla biznesu.

TheCodest
Rozwiązania dla przedsiębiorstw i scaleupów

Kompletny przewodnik po narzędziach i technikach audytu IT

Audyty IT zapewniają bezpieczne, wydajne i zgodne z przepisami systemy. Dowiedz się więcej o ich znaczeniu, czytając cały artykuł.

The Codest
Jakub Jakubowicz CTO & Współzałożyciel

Subskrybuj naszą bazę wiedzy i bądź na bieżąco!

    O nas

    The Codest - Międzynarodowa firma programistyczna z centrami technologicznymi w Polsce.

    Wielka Brytania - siedziba główna

    • Office 303B, 182-184 High Street North E6 2JA
      Londyn, Anglia

    Polska - lokalne centra technologiczne

    • Fabryczna Office Park, Aleja
      Pokoju 18, 31-564 Kraków
    • Brain Embassy, Konstruktorska
      11, 02-673 Warszawa, Polska

      The Codest

    • Strona główna
    • O nas
    • Nasze Usługi
    • Case Studies
    • Nasze Know How
    • Kariera
    • Słownik

      Nasze Usługi

    • Konsultacje IT
    • Software Development
    • Backend Development
    • Frontend Development
    • Zespoły IT
    • Backend Dev
    • Inżynierowie rozwiązań chmurowych
    • Inżynierowie danych
    • Inne
    • Inżynierowie QA

      Raporty

    • Fakty i mity na temat współpracy z zewnętrznym partnerem programistycznym
    • Z USA do Europy: Dlaczego amerykańskie startupy decydują się na relokację do Europy?
    • Porównanie centrów rozwoju Tech Offshore: Tech Offshore Europa (Polska), ASEAN (Filipiny), Eurazja (Turcja)
    • Jakie są największe wyzwania CTO i CIO?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Warunki korzystania z witryny

    Copyright © 2025 by The Codest. Wszelkie prawa zastrzeżone.

    pl_PLPolish
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench arArabic it_ITItalian jaJapanese ko_KRKorean es_ESSpanish nl_NLDutch etEstonian elGreek pl_PLPolish