Ieviešot Windows Linux apakšsistēmu (Windows Subsystem for Linux, WSL), Microsoft nodrošināja izstrādātājiem iespēju palaist GNU/Linux vidi tieši Windows sistēmā, nemodificējot to un neizmantojot virtuālo mašīnu. Tas ir lielisks risinājums, jo daudzi izstrādātāji izmanto vienu sistēmu programmēšanai un otru izklaidei.
WSL joprojām tiek pilnveidots, taču pašlaik tas ir piemērots modernām tehnoloģijām. programmatūras izstrāde, gan pirmajā, gan otrajā versijā. Pārlūkojot problēmas un jautājumus, par kuriem ziņots internetā, šķiet, ka lielākā daļa no tiem attiecas uz WSL integrāciju ar Docker, jo īpaši, ja runa ir par pāreju no WSL 1 uz WSL 2.
Šis raksts kliedēs visas neskaidrības un palīdzēs jums bez sāpēm iziet cauri šim procesam. Ja jums nav WSL 1 un vēlaties iegūt WSL 2 ar Docker, varat pāriet uzreiz uz pēdējo nodaļu.
Ko jūs iegūsiet?
- Patiesais jaunākais stabilais Linux kodols (Microsoft pielāgots). WSL 1 ir Linux saderīga kodola saskarne bez Linux kodola. kods.
- Palielināta failu IO veiktspēja. Līdz 20x ātrāka, salīdzinot ar WSL 1, kad tiek izpakēts zip tarball, aptuveni 2-5x ātrāka, kad tiek izmantots WSL 1. git klons, npm instalēt un cmake dažādos projektos.
- Pilnīga sistēmas izsaukumu savietojamība. Linux binārās programmas izmanto sistēmas izsaukumus, lai veiktu daudzas funkcijas, piemēram, piekļūtu failiem, pieprasītu atmiņu, izveidotu procesus un daudzas citas. Lai gan WSL 1 izmantoja tulkošanas slāni, ko izveidoja WSL komanda, WSL 2 ietver savu Linux kodolu ar pilnīgu sistēmas izsaukumu saderību.
- Faili, kas glabājas virtuālā diska dzimtajā ext4 nodalījumā.
- Ļoti vienkāršs veids, kā integrēt ar Docker.
Es domāju, ka lielākajai daļai lietotāju failu IO veiktspēja un vienkārša docker integrācija izklausās kā pietiekami iemesli.
Braucam!
Pieņemu, ka jums ir jaunākā stabilā Windows 10 Pro versija. Šobrīd tā ir 1909. gada versija.
Pievienojieties Windows insaideriem
Pašlaik WSL 2 ir pieejams tikai Windows 10 iekšējiem lietotājiem lēnajā gredzenā. Cik man zināms, stabilajai versijai vajadzētu būt pieejamai 2020. gada maijā (20H1 laidiens). Lēnais gredzens ir diezgan drošs risinājums lietotājiem, kuri vēlas saņemt jaunās funkcijas nedaudz agrāk, jau iepriekš pārbaudītas ātrā gredzena lietotāju. Lēnajā gredzenā sistēmas atjauninājumi tiek ieviesti līdz vienai vai divām reizēm mēnesī. Par iekšējās versijas izmaiņām varat izlasīt Microsoft dokumentā ar nosaukumu Lidojumu mezgls.
Lai pievienotos, vienkārši sekojiet oficiālajai Microsoft ceļvedis. Tas ir ļoti vienkārši un aizņem apmēram 15 minūtes, nezaudējot nekādas personīgās dati.
WSL 1 atjaunināšana uz WSL 2
Sekojiet oficiālajai ceļvedis. Tas ir arī ļoti vienkārši, pāris čaulas komandas, un šeit jūs esat! Atkarībā no tā, cik plaša bija jūsu Linux operētājsistēma WSL 1, tas var aizņemt kādu laiku. Diemžēl Microsoft nav ievietojis progresa joslu vai informāciju par nepieciešamo laiku, tāpēc vienkārši esiet pacietīgi.
Uzkopšana
Šī ir vissvarīgākā daļa pareizai WSL 2 un Docker sadarbībai. Pēc WSL 2 atjaunināšanas daudzi lietotāji cenšas piespiest savu Docker versiju sadarboties, neapzinoties, ka Docker team, īpaši WSL 2, ir sagatavojis versiju, kas darīs visu, lai WSL 2 varētu sadarboties. mums. Šī ir pēdējā Docker Edge versijas izlaide (to beta nosaukums) - “Docker Desktop WSL 2 backend”. Šī versija, 2.1.7.0, ir labi pilnveidota un ir gaidāmās stabilās versijas kandidāts.
Lietotājiem, kuriem nebija WSL 1 vai kuri tikko instalējuši svaigu WSL 2 versiju, paveicies un viņi var uzreiz pāriet uz pēdējo nodaļu.
Ja neesat iztīrījuši savu Docker (vispār vai pareizi) un neesat instalējuši pareizo Docker versiju WSL 2, varat saskarties ar dažām bieži sastopamām kļūdām, piem.,, Nevar izveidot savienojumu ar Docker daemon at tcp://localhost:2375“, “Vai Docker daemon darbojas, utt. Vairumā gadījumu jūs zaudēsiet laiku, ja nezināsiet, ka, cenšoties atrisināt šīs kļūdas, jums ir jāizmanto jauna pieeja. Lai to izdarītu, vispirms ir pilnībā jāizņem Docker no WSL un Windows, kas nav pašsaprotams solis.
Visizplatītākais neizmantoto palikumu piemērs ir vecā Docker pieeja, lai iestatītu vides mainīgo. DOCKER_HOST=tcp://localhost:2375 saskaņā ar WSL 1 sadarbībai ar Windows Docker opciju Eksponēt dēmonu tcp://localhost:2375 bez TLS.
Kā pilnībā noņemt Docker no WSL (Ubuntu)?
- Kā oficiālais Docker dokumenti teikt:
sudo apt-get remove docker docker-engine docker.io containerd runc
Noteikti varat pievienot šim sarakstam docker-ce un docker-ce-cli.
- Identificēt visas docker paketes, kas jums ir ar
dpkg -l | grep -i docker un dzēst, ja tādi joprojām ir.
- Noņemiet visus atlikumus:
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
- Šis solis ir paredzēts pieredzējušiem lietotājiem, tāpēc esiet uzmanīgi. Iespējams, jums tas nav nepieciešams.
Atrodiet visus docker vārdu sastopamību un izņemiet tos, par kuriem esat pārliecināts.
sudo atrast / -nosaukums “*docker*”
- Pārbaudiet visu turpmāk norādīto failu saturu, lai
docker gadījumi, piemēram, vides mainīgais DOCKER_HOST=tcp://localhost:2375.
Šos failus var rediģēt, izmantojot Nano redaktoru, nano ~/.bashrc, vai Visual Studio Code, kods ~/.bashrc.
~/.bashrc
~/.bash_aliases
~/.bash_profile
~/.bash_login
~/.profile
/etc/bash.bashrc
/etc/profile
Kā pilnībā noņemt Docker no operētājsistēmas Windows?
- Atinstalēšana parastā veidā, izmantojot operētājsistēmu Windows
Programmas un funkcijas panelis.
- Noņemiet visus zemāk norādītos, ja tādi ir:
C:Program FilesDocker
C:ProgramDataDockerDesktop
C:Users[USERNAME].docker
C:Users[USERNAME]AppDataLocalDocker
C:Users[USERNAME]AppDataRoamingDocker
C:Users[USERNAME]AppDataRoamingDocker Desktop
Kas tālāk?
Instalējiet jaunāko Docker Desktop Edge versiju no šeit un izpildiet oficiālajā dokumenti. Patiesībā tas ir tikai daži klikšķi.
Ja viss norit labi, jums vajadzētu saņemt izejas datus no wsl -l -v līdzīgi:
NOSAUKUMS VALSTS VERSIJA
Ubuntu-18.04 Running 2
docker-desktop darbojas 2
docker-desktop-data darbojas 2
Tas ir viss. Docker ir izveidojis savus WSL konteinerus docker-desktop un docker-desktop-data. Dažas no pieejamajām pamācībām vai padomiem var būt mulsinoši, jo šoreiz jūsu WSL Linux izplatīšanā nevajadzētu instalēt vai konfigurēt neko, kas saistīts ar Docker.. Ir ļoti svarīgi atcerēties. Pēc tīrīšanas tam vajadzētu uzreiz labi darboties.
Papildus..
WSL 2 iestatīšana ar Docker var būt nesāpīgs process, kas ietver dažus vienkāršus soļus. Sāciet, atjauninot pakešu saraksti izmantojot komandu “sudo apt-get update”, lai pārliecinātos, ka jums ir jaunākā versija. Atrisiniet trūkstošās atkarības ar “sudo apt-get install -y build-essential”, lai nodrošinātu vienmērīgu instalēšanu. Instalējiet Docker dzinējs ar “sudo apt-get install -y docker-engine”, lai bez piepūles izveidotu, palaistu un pārvaldītu konteinerus. Lai palaistu konteinerus, izpildiet “sudo docker run”, kam seko attēla nosaukums. Lai uzturētu vidi optimizētu, periodiski izpildiet “sudo docker system prune”, lai noņemtu neizmantotos konteinerus un atbrīvotu diska vietu. Veicot šos soļus, jūs varat izbaudīt WSL 2 un Docker nevainojamu integrāciju, lai efektīvi izmantotu konteinerus savā izstrādes darbplūsmā.