Dockerin ja DevOpsin perusteet · Oppitunti

Imagetasot ja optimointi

Tutustukaa Docker-imagien kerroksittaiseen rakenteeseen ja optimoikaa imagen koko sekä koontiajat.

Oppitunti 3/411 vaihetta

Imagetasot ja optimointi on ilmainen Dockerin ja DevOpsin perusteet-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Dockerin ja DevOpsin perusteet-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Dockerin ja DevOpsin perusteet-kurssilla on yhteensä 4 oppituntia.

Näköistiedostojen kerrokset: rakennuspalikat

Docker-näköistiedosto ei ole yksi valtava tiedosto. Sen sijaan se muodostuu useista vain luku -muotoisista kerroksista. Voit ajatella kerroksia päällekkäin asetettuina kalvoina.

Jokainen kerros edustaa näköistiedostoon tehtyä muutosta, mikä tekee näköistiedostoista tehokkaita ja joustavia. Tämä kerrosrakenne on keskeinen osa Dockerin toimintaa.

Imagetasot ja optimointi — kuvitus 1

Dockerfilen ohjeet ja kerrokset

Kun kirjoitat Dockerfile-tiedoston, lähes jokainen ohje luo uuden kerroksen edellisen päälle. Ohjeet kuten FROM, RUN, COPY ja ADD luovat kaikki uusia kerroksia.

Docker suorittaa ohjeet peräkkäin ja muodostaa jokaisen uuden kerroksen edellisen tilan perusteella.

Näköistiedoston historian tarkasteleminen

Voit tarkastella näköistiedoston muodostavia kerroksia komennolla docker history. Komento näyttää kunkin ohjeen, sen koon ja luontiajankohdan, mikä auttaa ymmärtämään, miten näköistiedosto on kasvanut.

Se on tehokas työkalu näköistiedoston kokoon liittyvien ongelmien vianmääritykseen.

docker history my-image:latest

Välimuistissa olevien kerrosten teho

Docker käyttää älykästä muodostamisvälimuistia. Jos Dockerfile-tiedoston ohje ja sen konteksti (esimerkiksi kopioitavat tiedostot) eivät ole muuttuneet edellisen muodostamisen jälkeen, Docker käyttää aiemmin luotua kerrosta uudelleen.

Tämä uudelleenkäyttö nopeuttaa seuraavia muodostamiskertoja huomattavasti, koska Dockerin ei tarvitse suorittaa muuttumattomia vaiheita uudelleen.

Optimointi 1: järkevä kerrosjärjestys

Dockerfile-tiedoston ohjeiden järjestys on ratkaisevan tärkeä tehokkaan välimuistin käytön kannalta. Sijoita harvoin muuttuvat ohjeet, kuten järjestelmäriippuvuuksien asentaminen, alkuun.

Usein muuttuvat ohjeet, kuten sovelluskoodin kopioiminen, kannattaa sijoittaa alemmas. Näin Docker voi käyttää vakaiden riippuvuuksien välimuistissa olevia kerroksia uudelleen, jos vain koodisi muuttuu.

Esimerkki: kerrosjärjestyksen optimointi

Vertaile näitä kahta Dockerfile-koodikatkelmaa. Hyvä järjestys sijoittaa vakaat riippuvuudet ensin, jolloin Docker voi tallentaa ne välimuistiin ja muodostaa uudelleen vain muuttuvan sovelluskoodin kerrokset.

FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
CMD ["node", "server.js"]

Optimointi 2: RUN-komentojen yhdistäminen

Jokainen RUN-komento luo yleensä uuden kerroksen. Voit vähentää kerrosten määrää ja usein myös lopullisen näköistiedoston kokoa yhdistämällä useita komentoja yhdeksi RUN-ohjeeksi.

Käytä operaattoria && \ komentojen ketjuttamiseen, jolloin niistä muodostuu yksi atominen kerros.

Esimerkki: RUN-komentojen ketjuttaminen

Useiden RUN-komentojen sijaan ketjuta ne operaattorilla && \. Näin kaikki toiminnot muodostavat yhden tehokkaamman kerroksen.

FROM ubuntu:latest
RUN apt-get update && \
    apt-get install -y curl && \
    rm -rf /var/lib/apt/lists/*
CMD ["bash"]

Optimointi 3: tiedostojen siivoaminen

Siivoa aina tiedostot, joita tarvitaan vain muodostamisen aikana. Esimerkiksi paketinhallinnan välimuistit (kuten apt-get clean) tai väliaikaiset muodostamisen tuotokset voivat kasvattaa näköistiedoston kerrosten kokoa merkittävästi.

Kun siivoat ne samassa RUN-komennossa, jolla ne luotiin, ne eivät jää pysyvästi aiempaan kerrokseen.

Pikatarkistus: näköistiedoston optimointi

Tarkastele seuraavaa Dockerfile-koodikatkelmaa:

FROM alpine:latest
COPY . /app
RUN apk add --no-cache git
RUN apk add --no-cache make
CMD ["sh"]

Mikä seuraavista muutoksista optimoisi tämän Dockerfile-tiedoston parhaiten pienempää näköistiedoston kokoa ja mahdollisesti nopeampia uudelleenmuodostamisia varten?

Kertaus: pienemmät ja nopeammat näköistiedostot

Olet oppinut, että Docker-näköistiedostot muodostuvat kerroksista ja että kukin ohje luo usein uuden kerroksen. Tämän ymmärtäminen on optimoinnin kannalta olennaista!

  • Järjestä ohjeet huolellisesti maksimoidaksesi muodostamisvälimuistin osumat.
  • Yhdistä useita RUN-komentoja yhdeksi kerrosten määrän vähentämiseksi.
  • Siivoa väliaikaiset tiedostot niitä vastaavissa RUN-komennoissa, jotta kerrokset pysyvät pieninä.

Näillä tekniikoilla voidaan luoda pienempiä ja nopeammin muodostuvia Docker-näköistiedostoja, jotka ovat olennaisia tehokkaissa käyttöönotoissa.

Aloita maksutta

Opi Dockerin ja DevOpsin perusteet tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
12
Oppitunnit
48

Usein kysytyt kysymykset

Onko oppitunti ”Imagetasot ja optimointi” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Dockerin ja DevOpsin perusteet-oppimispolun 3 oppituntia, myös oppitunnin “Imagetasot ja optimointi”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Dockerin ja DevOpsin perusteet-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Imagetasot ja optimointi”?

Tutustukaa Docker-imagien kerroksittaiseen rakenteeseen ja optimoikaa imagen koko sekä koontiajat. Harjoittelet Dockerin ja DevOpsin perusteet-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Dockerin ja DevOpsin perusteet-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Dockerin ja DevOpsin perusteet-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.

Kuinka kauan ”Imagetasot ja optimointi”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Dockerin ja DevOpsin perusteet-oppitunnilla?

Kyllä. Jokainen Dockerin ja DevOpsin perusteet-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Dockerfile-tiedostojen ymmärtäminen
  2. Mukautettujen Docker-imagien luominen
  3. Imagetasot ja optimointi
  4. Monivaiheiset koonnit ja pienemmät näköistiedostot
← Takaisin: Dockerin ja DevOpsin perusteet