Windows Subsystem for Linux (WSL) kasutuselevõtuga andis Microsoft arendajatele võimaluse käivitada GNU/Linuxi keskkonda otse Windowsis, muutmata, ilma virtuaalmasinaga kaasnevate kuludeta. See on suurepärane lahendus, sest paljud arendajad kasutavad ühte süsteemi programmeerimiseks ja teist meelelahutuse jaoks.
WSL on veel arendamisel, kuid praegu sobib see kaasaegse tarkvaraarendusnii esimeses kui ka teises versioonis. Internetis esitatud probleeme ja küsimusi sirvides tundub, et enamik neist puudutab WSL-i integreerimist Dockeriga, eriti kui tegemist on uuendamisega WSL 1-st WSL 2-sse.
See artikkel hajutab kõik ebaselgused ja aitab teil selle protsessi valutult läbida. Kui teil ei ole WSL 1 ja te soovite WSL 2 koos Dockeriga, võite hüpata otse viimase peatüki juurde.
Mida sa saad?
- Tõeline uusim stabiilne Linuxi tuum (Microsofti poolt häälestatud). WSL 1 on Linuxiga ühilduv tuuma liides ilma Linuxi kernelita. kood.
- Suurenenud faili IO jõudlus. Kuni 20 korda kiirem võrreldes WSL 1ga, kui pakitakse pakitud tarball välja, umbes 2-5 korda kiirem, kui kasutatakse git kloonimine
, npm install
ja cmake
erinevate projektide puhul.
- Täielik süsteemikõne ühilduvus. Linuxi binaarkoodid kasutavad süsteemikõnesid paljude funktsioonide täitmiseks, näiteks failidele juurdepääsuks, mälu taotlemiseks, protsesside loomiseks ja paljuks muuks. Kui WSL 1 kasutas WSL-i poolt loodud tõlkekihti, siis meeskond, WSL 2 sisaldab oma Linuxi tuuma, mis on täielikult ühilduv süsteemikõnedega.
- Failid, mis on salvestatud originaal ext4 partitsioonile virtuaalsel kettal.
- Väga lihtne viis integreerida Dockeriga.
Ma arvan, et enamiku kasutajate jaoks tunduvad faili IO jõudlus ja lihtne dokkerite integreerimine olevat piisavad põhjused.
Lähme!
Eeldan, et teil on Windows 10 Pro uusim stabiilne versioon. Tänase seisuga on see 1909 versioon.
Liituge Windowsi siseringi kasutajatega
Praegu on WSL 2 saadaval ainult Windows 10 jaoks siseringi aeglases ringis. Minu teada peaks stabiilne versioon olema saadaval mais 2020 (20H1 release). Slow ring on üsna turvaline lahendus kasutajatele, kes soovivad uusi funktsioone veidi varem, juba eelnevalt testitud fast ring kasutajate poolt. Aeglane ring saab süsteemivärskendusi kuni üks või kaks korda kuus. Insiderite väljalaske muudatuste kohta saab lugeda Microsofti dokumendist nimega Lennu sõlmpunkt.
Liitumiseks järgige lihtsalt ametlikku Microsofti juhend. See on väga lihtne ja võtab umbes 15 minutit, ilma et kaotaksite mingeid isiklikke andmeid.
WSL 1 uuendamine WSL 2-ks
Jälgi ametlikku juhend. See on ka väga lihtne, paar shell käsku ja siin sa oled! Sõltuvalt sellest, kui ulatuslik oli teie Linux WSL 1 all, võib see võtta aega. Kahjuks ei ole Microsoft pannud eduriba või infot vajaliku aja kohta, nii et ole lihtsalt kannatlik.
Koristamine
See on kõige olulisem osa WSL 2 ja Dockeri nõuetekohaseks koostööks. Pärast WSL 2-le uuendamist üritavad paljud kasutajad oma Dockeri versiooni sundida koostööd tegema, mõistmata, et Dockeri meeskond on spetsiaalselt WSL 2 jaoks ette valmistanud väljaande, mis teeb kõik meie eest ära. See on viimane Docker Edge versiooni (nende beetaversiooni nimi) - "Docker Desktop WSL 2 backend". See versioon, 2.1.7.0, on hästi viimistletud ja on kandidaat eelseisvaks stabiilseks versiooniks.
Kasutajad, kellel ei olnud WSL 1 või kes on just paigaldanud WSL 2 värske versiooni, on õnnelikud ja saavad kohe viimase peatükini üle minna.
Kui te ei ole oma Dockerit puhastanud (üldse või õigesti) ja ei ole paigaldanud WSL 2 jaoks sobivat Dockeri versiooni, siis võib tekkida mõni tavaline viga, nt, Ei saa ühendust Docker daemoniga aadressil tcp://localhost:2375", "Kas Docker daemon töötab
jne. Enamikul juhtudel kaotate aega, kui te ei tea, et peate nende vigade lahendamiseks võtma uue lähenemisviisi. Selleks tuleb kõigepealt eemaldada Docker täielikult WSL-ist ja Windowsist, mis ei ole ilmselge samm.
Kõige tavalisem näide eemaldamata jäägist on vana Dockeri lähenemine keskkonnamuutuja seadistamiseks DOCKER_HOST=tcp://localhost:2375
WSL 1 all, et teha koostööd Windows Dockeri valikuga Eksponeerida deemon tcp://localhost:2375 ilma TLS-ita
.
Kuidas eemaldada Docker täielikult WSL-st (Ubuntu)?
- Nagu ametlik Docker docs ütleme:
sudo apt-get remove docker docker-engine docker.io containerd runc
Kindlasti saab sellele nimekirjale lisada docker-ce
ja docker-ce-cli
.
- Identifitseerige kõik dokkeripaketid, mis teil on koos
dpkg -l | grep -i docker
ja eemaldada, kui need on veel olemas.
- Eemaldage kõik jäägid:
sudo rm -rf /var/lib/docker /etc/docker /etc/apparmor.d/docker /var/run/docker.sock /usr/local/bin/docker-compose /etc/docker /etc/docker
sudo groupdel docker ~/.docker
- See samm on mõeldud edasijõudnud kasutajatele, seega olge ettevaatlik. Tõenäoliselt ei pea te seda tegema.
Leia kõik dokkeri
sõna esinemised ja eemaldage need, milles olete kindel.
sudo find / -name "*docker*"
- Kontrollige kõigi allpool esitatud failide sisu
dokkeri
esinemised nagu näiteks keskkonnamuutuja DOCKER_HOST=tcp://localhost:2375
.
Neid faile saab redigeerida Nano redaktoriga, nano ~/.bashrc
, või Visual Studio Code, kood ~/.bashrc
.
~/.bashrc
~/.bash_aliases
~/.bash_profile
~/.bash_login
~/.profile
/etc/bash.bashrc
/etc/profile
Kuidas eemaldada Docker täielikult Windowsist?
- Uninstallimine tavalisel viisil Windowsiga
Rakendused ja funktsioonid
paneel.
- Eemaldage kõik allpool olevad andmed, kui need on olemas:
C:Program FilesDocker
C:ProgramDataDockerDesktop
C:Users[USERNAME].docker
C:Users[USERNAME]AppDataLocalDocker
C:Users[USERNAME]AppDataRoamingDocker
C:Users[USERNAME]AppDataRoamingDocker Desktop
Mis saab edasi?
Installige Docker Desktop Edge'i uusim versioon aadressilt siin ja järgige ametliku docs. See on tõesti vaid paar klõpsu.
Kui kõik läheb hästi, peaksite oma väljundit saama alates wsl -l -v
niimoodi:
NIMI RIIGIVERSIOON
Ubuntu-18.04 Running 2
docker-desktop Käivitatud 2
docker-desktop-data Käimas 2
See on kõik. Docker on loonud oma WSL konteinerid docker-desktop
ja docker-desktop-data
. Mõned olemasolevad õpetused või nõuanded võivad olla segadust tekitavad, sest seekord te ei tohiks installida ega konfigureerida midagi, mis on seotud Dockeriga, oma WSL Linuxi distributsiooni alla.. See on väga oluline meeles pidada. Pärast puhastamist peaks see kohe hästi toimima.
Lisaks...
WSL 2 seadistamine koos Dockeriga võib olla mõne lihtsa sammuga valutu protsess. Alustage uuendamisega paketiloendid kasutades käsku "sudo apt-get update", et tagada uusima versiooni teave. Lahendage kõik puuduolevad sõltuvused koos "sudo apt-get install -y build-essential" sujuvaks paigaldamiseks. Installige Docker mootor koos "sudo apt-get install -y docker-engine", et konteinereid hõlpsasti ehitada, käivitada ja hallata. Konteinerite käivitamiseks käivitage "sudo docker run", millele järgneb kujutise nimi. Et hoida oma keskkonda optimeerituna, käivitage perioodiliselt "sudo docker system prune", et eemaldada kasutamata konteinerid ja vabastada kettaruumi. Nende sammude abil saate nautida WSL 2 ja Dockeri sujuvat integreerimist, et konteinerite kasutamine oleks teie arendustööprotsessis tõhus.