Esittelemällä Windows Subsystem for Linuxin (WSL) Microsoft antoi kehittäjille mahdollisuuden käyttää GNU/Linux-ympäristöä suoraan Windowsissa ilman muutoksia ja ilman virtuaalikoneen aiheuttamia kustannuksia. Tämä on hyvä ratkaisu, koska monet kehittäjät käyttävät yhtä järjestelmää ohjelmointiin ja toista viihdekäyttöön.
WSL:ää kehitetään edelleen, mutta se soveltuu tällä hetkellä nykyaikaisiin ohjelmistokehityssekä ensimmäisessä että toisessa versiossa. Internetissä raportoitujen ongelmien ja kysymysten selaaminen osoittaa, että suurin osa niistä näyttää koskevan WSL:n integrointia Dockerin kanssa, erityisesti kun on kyse päivityksestä WSL 1:stä WSL 2:een.
Tämä artikkeli hälventää kaikki epäselvyydet ja auttaa sinua selviytymään tästä prosessista kivuttomasti. Jos sinulla ei ole WSL 1:tä ja haluat WSL 2:n Dockerin kanssa, voit hypätä suoraan viimeiseen lukuun.
Mitä voitat?
- Todellinen uusin vakaa Linux-ydin (Microsoftin virittämä). WSL 1:ssä on Linux-yhteensopiva ytimen käyttöliittymä ilman Linux-ydintä. koodi.
- Tehostettu tiedostojen IO-suorituskyky. Jopa 20 kertaa nopeampi WSL 1:een verrattuna, kun puretaan pakattua tar-palloa, noin 2-5 kertaa nopeampi, kun käytetään git-klooni
, npm-asennus
ja cmake
erilaisissa hankkeissa.
- Täysi järjestelmäkutsuyhteensopivuus. Linux-ohjelmat käyttävät järjestelmäkutsuja monien toimintojen suorittamiseen, kuten tiedostojen käyttämiseen, muistin pyytämiseen, prosessien luomiseen ja moniin muihin toimintoihin. WSL 1 käytti WSL:n rakentamaa käännöskerrosta. joukkue, WSL 2 sisältää oman Linux-ytimen, joka on täysin yhteensopiva järjestelmäkutsujen kanssa.
- Virtuaalilevyn natiiviin ext4-osioon tallennetut tiedostot.
- Erittäin helppo tapa integroida Dockeriin.
Luulen, että useimmille käyttäjille tiedostojen IO-suorituskyky ja helppo telakointiintegraatio kuulostavat riittäviltä syiltä.
Mennään!
Oletan, että sinulla on Windows 10 Pro -käyttöjärjestelmän uusin vakaa versio. Tänään se on versio 1909.
Liity Windowsin sisäpiiriläisiin
Tällä hetkellä WSL 2 on saatavilla vain Windows 10:lle sisäpiirin hitaassa kehässä. Tietääkseni vakaan version pitäisi olla saatavilla toukokuussa 2020 (20H1-julkaisu). Hidas rengas on varsin turvallinen ratkaisu käyttäjille, jotka haluavat uusia ominaisuuksia hieman aikaisemmin, jo valmiiksi nopean renkaan käyttäjien testaamina. Hidas rengas saa järjestelmäpäivityksiä jopa kerran tai kaksi kuukaudessa. Voit lukea sisäpiirin julkaisumuutoksista Microsoftin asiakirjasta nimeltä Flight Hub.
Liittyäksesi seuraamalla virallista Microsoft opas. Se on erittäin helppoa ja kestää noin 15 minuuttia menettämättä mitään henkilökohtaisia tietoja.
Päivitä WSL 1 WSL 2:ksi
Seuraa virallista opas. Se on myös hyvin helppoa, pari komentotulkkikomentoa ja olet valmis! Riippuen siitä, kuinka laaja Linux WSL 1:n alla oli, tämä voi viedä jonkin aikaa. Valitettavasti Microsoft ei ole laittanut edistymispalkkia tai tietoa tarvittavasta ajasta, joten ole vain kärsivällinen.
Siivous
Tämä on tärkein osa WSL 2:n ja Dockerin asianmukaisen yhteistyön kannalta. WSL 2:een päivittämisen jälkeen monet käyttäjät yrittävät pakottaa Docker-versionsa tekemään yhteistyötä ymmärtämättä, että Docker-tiimi on valmistellut erityisesti WSL 2:ta varten julkaisun, joka tekee kaiken puolestamme. Tämä on Docker Edge -version (niiden beta-nimi) viimeinen julkaisu - "Docker Desktop WSL 2 backend". Tämä versio, 2.1.7.0, on hyvin viimeistelty ja on ehdokas tulevaa vakaata julkaisua varten.
Käyttäjät, joilla ei ollut WSL 1:tä tai jotka ovat juuri asentaneet WSL 2:n tuoreen version, ovat onnekkaita ja voivat siirtyä heti viimeiseen lukuun.
Jos et ole puhdistanut Dockeria (lainkaan tai oikein) etkä ole asentanut oikeaa Docker-versiota WSL 2:lle, saatat törmätä joihinkin yleisimpiin virheisiin, kuten, Yhteyttä Docker-demoniin osoitteessa tcp://localhost:2375 ei voida muodostaa", "Onko Docker-demoni käynnissä?
jne. Useimmissa tapauksissa menetät aikaa, jos et tiedä, että sinun on omaksuttava uusi lähestymistapa näiden virheiden ratkaisemiseen. Tätä varten sinun on ensin poistettava Docker kokonaan WSL:stä ja Windowsista, mikä ei ole itsestäänselvyys.
Yleisin esimerkki poistamattomista jäänteistä on Dockerin vanha tapa asettaa ympäristömuuttujaa DOCKER_HOST=tcp://localhost:2375
WSL 1:ssä yhteistyötä varten Windows Docker -vaihtoehdon kanssa Altista demon tcp://localhost:2375 ilman TLS:ää.
.
Kuinka poistaa Docker kokonaan WSL:stä (Ubuntu)?
- Kuten virallinen Docker docs sano:
sudo apt-get remove docker docker-engine docker.io containerd runc
Tähän luetteloon voi varmasti lisätä docker-ce
ja docker-ce-cli
.
- Tunnista kaikki docker-paketit, jotka sinulla on kanssa
dpkg -l | grep -i docker
ja poista, jos niitä on vielä olemassa.
- Poista kaikki jäämät:
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
- Tämä vaihe on tarkoitettu edistyneille käyttäjille, joten ole varovainen. Luultavasti sinun ei tarvitse tehdä sitä.
Etsi kaikki telakka
sanan esiintymät ja poista ne, joista olet varma.
sudo find / -name "*docker*"
- Tarkista kaikkien alla olevien tiedostojen sisältö
telakka
esiintymät kuten esim. ympäristömuuttuja DOCKER_HOST=tcp://localhost:2375
.
Voit muokata näitä tiedostoja Nano-editorilla, nano ~/.bashrc
tai Visual Studio Code, koodi ~/.bashrc
.
~/.bashrc
~/.bash_aliases
~/.bash_profile
~/.bash_login
~/.profile
/etc/bash.bashrc
/etc/profile
Kuinka poistaa Docker kokonaan Windowsista?
- Poista asennus normaalisti Windowsilla
Sovellukset ja ominaisuudet
paneeli.
- Poista kaikki alla olevat tiedot, jos ne ovat olemassa:
C:Program FilesDocker
C:ProgramDataDockerDesktopPöytäkone
C:Users[KÄYTTÄJÄNIMI].docker
C:Users[USERNAME]AppDataLocalDocker
C:Users[USERNAME]AppDataRoamingDocker
C:Users[USERNAME]AppDataRoamingDocker Desktop
Mitä seuraavaksi?
Asenna Docker Desktop Edgen uusin versio osoitteesta täällä ja noudata virallisen docs. Kyse on vain muutamasta klikkauksesta.
Jos kaikki sujuu hyvin, sinun pitäisi saada tulosteesi osoitteesta wsl -l -v
näin:
NIMI TILA VERSIO
Ubuntu-18.04 Käynnissä 2
docker-desktop Käynnissä 2
docker-desktop-data Käynnissä 2
Siinä kaikki. Docker on luonut omat WSL-säiliönsä docker-desktop
ja docker-desktop-data
. Jotkut saatavilla olevat opetusohjelmat tai neuvoja voi olla sekava, koska tällä kertaa sinun ei pitäisi asentaa tai konfiguroida mitään Dockeriin liittyvää WSL Linux -jakelussasi.. On erittäin tärkeää muistaa. Puhdistuksen jälkeen sen pitäisi toimia hyvin heti.
Lisäksi...
WSL 2:n asentaminen Dockerin kanssa voi olla kivuton prosessi muutamalla yksinkertaisella vaiheella. Aloita päivittämällä pakettiluettelot komennolla "sudo apt-get update" varmistaaksesi, että sinulla on uusimmat versiotiedot. Ratkaise puuttuvat riippuvuudet käyttämällä "sudo apt-get install -y build-essential" sujuvan asennuksen varmistamiseksi. Asenna Docker Engine kanssa "sudo apt-get install -y docker-engine", jonka avulla voit vaivattomasti rakentaa, käyttää ja hallita kontteja. Käynnistä kontit komennolla "sudo docker run" ja sen jälkeen kuvan nimi. Jotta ympäristösi pysyisi optimoituna, suorita ajoittain "sudo docker system prune" poistaaksesi käyttämättömät kontit ja vapauttaaksesi levytilaa. Näiden vaiheiden avulla voit nauttia WSL 2:n ja Dockerin saumattomasta integraatiosta, joka mahdollistaa tehokkaan konttityöskentelyn kehitysprosessissasi.