Dockerin opetusohjelma aloittelijoille: perusteet, Architecture, Säiliöt

⚡ Älykäs yhteenveto

Docker on konttialusta, joka pakkaa sovelluksia ja niiden riippuvuuksia kannettaviin, kevyisiin kontteihin. Tämä yleiskatsaus selittää Dockerin arkkitehtuurin, asennuksen Ubuntu, olennaisia ​​komentoja ja sitä, miten kontit eroavat perinteisistä virtuaalikoneista nopeamman ohjelmistotoimituksen saavuttamiseksi.

  • 🐳 Säiliöinti: Docker virtualisoi käyttöjärjestelmätasolla, joten kontit jakavat isäntäytimen ja käyttävät vähemmän resursseja kuin virtuaalikoneet.
  • 🧱 Archirakenne: Docker-moottori (dockerd), levykuvat, rekisterit ja säilöt muodostavat jokaisen Docker-työnkulun taustalla olevan asiakas-palvelin-arkkitehtuurin.
  • 📦 Kuvat ja säilöt: Kuva on vain luku -tilassa oleva mallipohja, kun taas säilö on käynnissä oleva kopio, ja yksi kuva voi käynnistää useita säilöjä.
  • 🗄️ Rekisterit: Docker Hub tallentaa julkisia ja yksityisiä levykuvia, tarjoten sinulle miljoonia käyttövalmiita levykuvia vetämistä ja suorittamista varten.
  • ⚙️ Asennus: On Ubuntu lisäät Docker APT -arkiston ja GPG-avaimen ja asennat sitten docker-ce-paketin apt-get-komennolla.
  • ⌨️ Ydinkomennot: Hallitse säilöjä Dockerin pull-, run-, start-, stop-, ps-, stats- ja images-komennoilla komentoriviltä.

Docker-opetusohjelma aloittelijoille, joka käsittelee arkkitehtuuria ja asennusta Ubuntuja peruskonttikomennot

Docker on yksi suosituimmista nykyaikaisissa sovelluksissa käytetyistä konttialustoista. DevOps ja pilvipalvelutyönkulkuja. Tämä Docker-opetusohjelma aloittelijoille selittää, mikä Docker on, miten Docker-arkkitehtuuri toimii ja miten Docker asennetaan Ubuntuja kuvien ja säilöjen hallintaan käytettävät peruskomennot.

Mikä on Docker?

Satamatyöläinen on virtualisointiin tarkoitettu ohjelmistokehitysalusta, jonka avulla useita käyttöjärjestelmiä voi ajaa samalla isännöintikoneella. Se auttaa erottamaan infrastruktuurin sovelluksista, jotta voit toimittaa ohjelmistoja nopeasti. Toisin kuin hypervisorit, joita käytetään virtuaalikoneiden (VM) luomiseen, Docker suorittaa virtualisoinnin järjestelmätasolla käyttämällä Docker-konteiksi kutsuttuja yksiköitä.

Docker-kontit toimivat isäntäkäyttöjärjestelmän päällä, kuten alla olevassa kuvassa näkyy. Tämä parantaa sekä tehokkuutta että turvallisuutta. Voit myös käyttää useampia kontteja kuin virtuaalikoneita samassa infrastruktuurissa, koska kontit käyttävät vähemmän resursseja.

Virtualisointi Docker vs Hypervisorissa
Virtualisointi Docker vs Hypervisorissa

Toisin kuin virtuaalikoneet, jotka voivat kommunikoida suoraan isäntälaitteiston kanssa (esimerkiksi Ethernet-sovitin, joka luo lisää virtuaalisovittimia), Docker-kontit toimivat erillisessä ympäristössä isäntäkäyttöjärjestelmän päällä. Vaikka isäntäsi toimisi Windows, voit juosta Linux kuvia säiliöiden sisällä apuna Hyper-V, joka luo automaattisesti pienen virtuaalikoneen peruskuvan virtualisoimiseksi.

Nyt kun tiedät, mikä Docker on, katsotaanpa tärkeimpiä syitä, miksi tiimit valitsevat sen.

Miksi käyttää Dockeria?

Tässä ovat tärkeimmät syyt käyttää Dockeria:

  • Docker on virtualisointiin käytettävä ohjelmisto, joka mahdollistaa useita toimintoja käyttöjärjestelmät toimimaan samalla isännöinnillä.
  • Docker on asiakas-palvelin-sovellus, mikä tarkoittaa, että asiakkaat kommunikoivat palvelimen kanssa.
  • Docker-kuvat toimivat säilöjen "lähdekoodina"; käytät niitä rakentamiseen.
  • Docker tukee kahdenlaisia ​​rekistereitä: julkisia ja yksityisiä.
  • Kontit ovat Dockerin organisaatioyksiköitä. Yksinkertaisesti sanottuna kuva on mallipohja ja kontti on kopio mallipohjasta, joten voit ajaa useita kontteja samasta kuvasta.

Nämä hyödyt johtuvat Dockerin suunnittelusta. Seuraavassa osiossa eritellään Docker-arkkitehtuuri ja sen ydinkomponentit.

Satamatyöläinen Archirakenne

Tässä Docker-konttioppaassa tarkastellaan nyt Docker-arkkitehtuurin pääkomponentteja.

Satamatyöläinen Archirakennekomponentit: moottori, levykuvat, rekisterit ja säilöt

Satamatyöläinen Archirakenne

Docker-moottori

Docker on asiakas-palvelin-sovellus, mikä tarkoittaa, että meillä on asiakkaita, jotka välittävät pyyntöjä palvelimelle. Docker-daemon, nimeltään dockerd, on Docker-moottori, joka edustaa palvelinta. Daemon ja asiakkaat voivat toimia samassa tai etäisännässä, ja ne kommunikoivat komentorivipohjaisen asiakasbinäärin ja täyden... RESTful API joka on vuorovaikutuksessa dockerdin kanssa.

Docker-kuvat

Docker-kuvat ovat konttien "lähdekoodia"; käytämme niitä konttien rakentamiseen. Kuviin voi olla esiasennettu ohjelmisto, mikä nopeuttaa käyttöönottoa. Ne ovat kannettavia, ja voit käyttää olemassa olevia kuvia tai rakentaa omia.

Docker-rekisterit

Docker tallentaa rakentamamme levykuvat rekistereihin. On olemassa julkisia ja yksityisiä rekistereitä. Dockerilla on julkinen rekisteri nimeltä Docker-napa, jossa voit myös tallentaa kuvia yksityisesti. Docker Hubissa on miljoonia kuvia, joita voit alkaa käyttää heti.

Docker-kontit

Kontit ovat Dockerin organisaatioyksiköitä ja yksi sen peruskäsitteistä. Kun rakennamme kuvan ja suoritamme sen, suoritamme sitä kontin sisällä. Konttianalogiaa käytetään sen sisällä toimivan ohjelmiston siirrettävyyden vuoksi: voit siirtää, "lähettää", muokata, hallita, luoda tai tuhota sitä aivan kuten rahtialukset käsittelevät oikeita kontteja.

Yksinkertaisesti sanottuna kuva on malli ja säilö on kopio mallista. Sinulla voi olla useita säilöjä (kopioita) samasta kuvasta.

Näiden eri komponenttien välinen vuorovaikutus osoittaa, miten Docker-konttiteknologia toimii yhdessä. Komentojen, kuten docker pull ja docker run, avulla voit hallita tätä työnkulkua, joita käsittelemme myöhemmin.

Asennamme Dockerin arkkitehtuuri mielessä pitäen, jotta voit kokeilla näitä komponentteja itse.

Kuinka asentaa Docker Linuxiin/Ubuntu

Alla on vaiheittainen Dockerin asennusprosessi Linuxissa/Ubuntu:

Vaihe 1) Dockerin asentamiseen tarvitset Docker-tiimin DEB-paketit. Ensinnäkin joitakin edellytyksiä Ubuntu Paketteja tarvitaan. Asenna ne alla olevalla komennolla.

$ sudo apt-get install \
apt-transport-https \
ca-certificates curl \
software-properties-common

*merkki “\” ei ole välttämätön, sitä käytetään uudelle riville, halutessasi voit kirjoittaa komennon käyttämättä “\” vain yhdellä rivillä.

Vaihe 2) Lisää virallinen Docker GPG -avain sormenjäljellä. Syötä GPG-avain alla olevalla Docker-komennolla.

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Vaihe 3) Lisää seuraavaksi Docker APT -arkisto alla olevalla komennolla.

$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"

Sinua saatetaan pyytää vahvistamaan, että haluat lisätä arkiston ja että GPG-avain lisätään automaattisesti isäntäkoneeseesi. lsb_release-komennon pitäisi täyttää lomake. Ubuntu isäntäsi jakeluversio.

Vaihe 4) Kun olet lisännyt GPG-avaimen, päivitä APT-lähteet alla olevalla Docker-komennolla.

$ sudo apt-get update

Voit nyt asentaa itse Docker-paketin.

Vaihe 5) Kun APT-lähdekoodit on päivitetty, aloita Docker-pakettien asentaminen Ubuntu käyttämällä alla olevaa Docker-komentoa.

$ sudo apt-get install docker-ce

Yllä oleva komento asentaa Dockerin ja muut tarvittavat paketit. Ennen Docker 1.8.0:aa paketin nimi oli lxc-docker, ja Docker 1.8:n ja 1.13:n välillä paketin nimi oli docker-engine.

HUOMAUTUS: Docker-sovellus Windows Vaatii Windows 10 Pro- tai Enterprise-versio 14393 tai Windows Server 2016 RTM, suoritettavaksi.

Dockerin käyttäminen Dockerin peruskomentojen avulla

Näin käytät Dockeria muutamalla Dockerin peruskomennolla.

Peruskomento, joka sinun tulisi suorittaa Dockerin asentamisen jälkeen, on docker info, kuten aiemmin mainittiin.

$ sudo docker info

Sinun pitäisi saada seuraavankaltainen tulos.

Käytä Dockeria Dockerin peruskomennoilla ja näytä Dockerin info-tuloste

Kuten yllä olevassa Docker-esimerkissä on esitetty, voimme nähdä tietoja Docker-konteineista: kuinka monta on käynnissä, keskeytettynä tai pysäytettynä ja kuinka monta kuvaa on ladattu. Otetaan nyt ensimmäinen kuva.

$ sudo docker pull alpine

Tällä komennolla käskemme Dockeria lataamaan alpine-kuvan julkisesta rekisteristä uusimmassa versiossa, joka on oletusarvoisesti asetettu.

*alpine on Alpine Linuxiin perustuva minimaalinen Docker-kuva, jossa on täydellinen pakettihakemisto ja vain 5 Mt.

Jos haluamme suorittaa kuvan säilönä, käytämme seuraavaa komentoa.

$ sudo docker run -i -t alpine /bin/bash

Komennon suorittaminen lähettää meidät suoraan Alpine-terminaaliin. -i-lippu pitää STDIN:n auki säilössä, vaikka et olisi siihen yhteydessä; tämä pysyvä vakiosyöte on puolet siitä, mitä tarvitset interaktiivista komentotulkkia varten. -t-lippu on toinen puoli ja se käskee Dockeria määrittämään pseudo-tty-syötteen säilölle. Yhdessä ne antavat meille interaktiivisen komentotulkin uudessa säilössä. Poistumme säilöstä yksinkertaisella exit-komennolla.

Tässä Dockerin perusteet -opetusohjelmassa voimme nyt kokeilla suorittaa Ubuntu kuva.

$ sudo docker run -it ubuntu /bin/bash

Huomaa, että Docker tarkistaa kuvan paikallisesti, ja jos sitä ei löydy, kuva noudetaan automaattisesti kuvakirjastosta. Jälleen kerran meillä on käynnissä interaktiivinen komentotulkki. Voimme myös nimetä säilöt niitä suoritettaessa.

$ sudo docker run –-name our_container -it ubuntu /bin/bash

Sitten poistumme taas. Voimme myös suorittaa aiemmin luomamme säilön ilman interaktiivista komentotulkkia.

$ sudo docker start container_name

Ja pysäytämme kontin kirjoittamalla docker stop container_name.

$ sudo docker stop container_name

Jos haluamme nähdä kaikki käynnissä olevat kontit, suoritamme yksinkertaisesti seuraavan komennon.

$ docker ps

Kaikkien säilöjen kohdalla lisätään komennon loppuun pääte "-a", kuten docker ps -a:ssa. Tämä komento näyttää säilön tunnuksen, sen käyttämän levykuvan, luontiajankohdan, suoritustilan, näkyvät portit ja satunnaisesti luodun nimen hallinnan helpottamiseksi.

Kun suoritamme kontteja, haluamme usein tietää, kuinka monta resurssia ne käyttävät. Tätä varten voimme käyttää seuraavaa komentoa.

$ docker stats

Voit myös nähdä, mitkä kuvat olet ladannut paikallisesti, sekä tietoja niistä.

$ sudo docker images

Yllä olevan Docker-esimerkin komento näyttää jokaisen Docker-kuvan, jossa on tunniste, joka näyttää kuvan version, yksilöllisen kuvan tunnuksen, luontipäivämäärän ja kuvan koon.

Ymmärtääksemme, miksi kontit ovat niin suuri parannus, on hyödyllistä tarkastella virtualisoinnin kehitystä.

Mikä on virtualisointi?

Aiemmin palvelun käyttöönotto oli hidasta ja työlästä. Kehittäjät kirjoittivat koodia, ja sitten operatiivinen tiimi otti sen käyttöön paljailla metallikoneilla, joissa heidän piti tarkkailla kirjastoversioita, korjauksia ja kielikääntäjiä, jotta koodi toimisi. Jos ilmeni vikoja tai virheitä, prosessi alkoi alusta: kehittäjät korjasivat ongelman ja operatiivinen tiimi otti sen uudelleen käyttöön.

Asiat paranivat hypervisorien luomisen myötä. Hypervisorit suorittavat useita virtuaalikoneettai virtuaalikoneita samalla isännöintipalvelimella, joka voi olla käynnissä tai pois päältä. Virtuaalikoneet lyhensivät huomattavasti koodin käyttöönottoon ja virheiden korjaamiseen kuluvaa odotusaikaa, mutta todellinen käännekohta oli Docker-konttien käyttöönotto.

Dockerin suosiota vauhdittavat myös orkestrointityökalut, jotka hallitsevat säilöjä skaalautuvasti, kuten KubernetesEnnen kuin jatkamme, tässä on lyhyt katsaus tärkeimpiin Docker-komentoihin.

Tärkeät Docker-komennot

Alla ovat tärkeät Docker-komennot:

Komento Tuotetiedot
telakkatiedot Tietokomento
telakkaveto Lataa kuva
docker run -i -t kuvan_nimi /bin/bash Suorita kuva säilönä
docker start our_container Käynnistä säiliö
telakointiaseman pysäkki kontin_nimi Pysäytä säiliö
docker ps Luettelo kaikista käynnissä olevista säilöistä
telakkatilastot Säilön tiedot
docker -kuvia Luettelo ladatuista kuvista
Dockerin puhdistus Tapa kaikki käynnissä olevat säiliöt.

Lue myös nämä Dockerin työhaastattelun kysymyksiä ja vastauksia niin vasta-alkajille kuin kokeneillekin ammattilaisille.

UKK

Docker-kontti jakaa isäntäkäyttöjärjestelmän ytimen ja eristää vain sovelluksen, joten se on kevyt ja käynnistyy sekunneissa. Virtuaalikone sisältää täyden vieraskäyttöjärjestelmän, mikä tekee siitä suuremman, hitaamman käynnistyä ja enemmän resursseja vaativan.

Dockerfile on selkokielinen komentosarja, joka sisältää ohjeita, kuten FROM, RUN, COPY ja CMD. Docker lukee nämä ohjeet ja rakentaa kuvan automaattisesti. Jokainen rivi lisää kerroksen, jolloin voit toistaa saman ympäristön millä tahansa koneella.

Docker Compose määrittelee ja suorittaa usean säilön sovelluksia käyttämällä yhtä YAML-tiedostoa. Kuvailet jokaisen palvelun, verkon ja taltion kerran ja käynnistät kaiken sitten docker compose up -komennolla. Se on ihanteellinen paikalliseen kehitykseen ja yhdistettyjen palveluiden testaukseen.

Docker rakentaa ja käyttää yksittäisiä säilöjä samalla kun Kubernetes koordinoi useita säilöjä klusterin sisällä. Kubernetes lisää automaattisen skaalauksen, itsekorjauksen ja kuormituksen tasapainotuksen. Käytännössä Docker pakkaa sovelluksen ja Kubernetes hallinnoi sitä tuotannossa.

Docker Engine on ilmainen ja avoimen lähdekoodin ohjelmisto Apache 2.0 -lisenssillä. Docker Desktop on ilmainen henkilökohtaiseen käyttöön, koulutukseen ja pienyrityksille, mutta suuremmat yritykset tarvitsevat maksullisen tilauksen. Docker Hub tarjoaa sekä ilmaisia ​​että maksullisia kuvien isännöintipaketteja.

Docker toimii natiivisti Linuxissa ja sitä tuetaan Windows ja macOS Docker Desktopin kautta. Päällä Windows Macilla ja Docker käyttää kevyttä virtuaalikonetta Linux-ytimen suorittamiseen, jota kontit vaativat. Useimmat konttikuvat ovat Linux-pohjaisia.

Tekoälyavustajat luovat Docker-tiedostoja, Docker-compose-tiedostoja ja CLI-komentoja selkokielisistä kehotteista. He myös lukevat koontilokeja ja säilövirheitä, selittävät syyn ja ehdottavat korjauksia. Tarkista aina luotu kokoonpano oikeiden kuvatunnisteiden, polkujen ja suojauksen varalta ennen sen suorittamista.

Kyllä. GitHub Copilot ja ChatGPT voi luonnostella Docker-tiedostoja ja laatia tiedostoja lyhyestä kommentista tai kuvauksesta. Ne nopeuttavat vakiomuotoisten tiedostojen luomista, mutta sinun kannattaa tarkistaa peruskuvat, versiot ja parhaat käytännöt, koska luodut koodinpätkät saattavat käyttää vanhentuneita oletusarvoja.

Tiivistä tämä viesti seuraavasti: