Skip to content

Docker teknologia - Docker Technology

Kuvauksen kirjoitti: Samson Azizyan, M3156

Kuvaus

Docker on joukko "alusta palveluna" (Platform as a Service, PaaS) -tuotteita, jotka käyttävät käyttöjärjestelmätason virtualisointia ohjelmistojen toimittamiseen kontteiksi kutsuttuihin paketteihin. Säiliöt ovat erillään toisistaan ja niputtavat omat ohjelmistonsa, kirjastot ja kokoonpanotiedostot. He voivat kommunikoida keskenään hyvin määriteltyjen kanavien kautta. Kaikki kontit ovat yhden käyttöjärjestelmän ytimen ylläpitämiä, joten ne käyttävät vähemmän resursseja kuin virtuaalikoneet.

Palvelussa on sekä ilmaisia että premium-tasoja. Kontteja isännöivää ohjelmistoa kutsutaan nimellä Docker Engine. Se aloitettiin ensimmäisen kerran vuonna 2013, ja sen on kehittänyt Docker, Inc.

Toiminnallisuus

Docker voi pakata sovelluksen ja sen riippuvuudet virtuaalikonttiin, joka toimii millä tahansa Linux-palvelimella. Tämän avulla sovellus voi toimia useissa eri paikoissa, kuten paikan päällä, julkisessa pilvessä ja / tai yksityisessä pilvessä. Docker käyttää Linux-ytimen resurssieristysominaisuuksia (kuten ccgroups ja kernel namespaces) ja unionia tukevaa tiedostojärjestelmää (kuten OverlayFS), jotta kontit voivat toimia yhdessä Linux-instanssissa välttäen yleiskustannuksia ja virtuaalikoneiden ylläpitoa.

Koska Docker-kontit ovat kevyitä, yksi palvelin tai virtuaalikone voi käyttää useita kontteja samanaikaisesti. Vuonna 2018 tehdyssä analyysissä todettiin, että tyypilliseen Docker-käyttötapaukseen sisältyy kahdeksan konttien käyttö isäntää kohti ja että neljännes analysoiduista organisaatioista käyttää vähintään 18 isäntää kohti.

Linux kernelin tuki nimiavaruuksille eristää enimmäkseen sovelluksen näkymän käyttöympäristöön, mukaan lukien prosessipuut, verkko, käyttäjätunnukset ja asennetut tiedostojärjestelmät, kun taas kernelin ryhmät (cgroups) rajoittavat resursseja muistia ja suoritinta varten. Versiosta 0.9 lähtien Docker sisältää oman komponenttinsa (ns. "Libcontainer"), jotta se voi käyttää suoraan Linux kernelin tarjoamia virtualisointilaitteita sen lisäksi, että se käyttää abstrakteja virtualisointirajapintoja libvirtin, LXC: n ja systemd-nspawn: n kautta.

Docker toteuttaa korkean tason rajapinnan tarjoakseen kevyitä kontteja, jotka suorittavat prosesseja erillään.

Komponentit

Docker-ohjelmisto palveluna koostuu kolmesta osasta:

Ohjelmisto

Docker-daemon, nimeltään dockerd, on jatkuva prosessi, joka hallitsee Docker-kontteja ja käsittelee konttiobjekteja. Daemon kuuntelee Docker Engine -sovellusliittymän kautta lähetettyjä pyyntöjä. Docker-asiakasohjelma, nimeltään docker, tarjoaa komentoriviliittymän, jonka avulla käyttäjät voivat olla vuorovaikutuksessa Docker-deamonien kanssa.

Objektit

Docker-objektit ovat erilaisia kokonaisuuksia, joita käytetään sovelluksen kokoamiseen Dockerissa. Docker-objektien pääluokat ovat imaget, kontit ja palvelut. Docker-kontti on standardoitu, koteloitu ympäristö, joka käyttää sovelluksia. Säilöä hallitaan Docker-sovellusliittymän tai CLI: n avulla. Docker-image on read-only -malli, jota käytetään säilöjen rakentamiseen. Imageja käytetään sovellusten tallentamiseen ja lähettämiseen. Docker-palvelu sallii konttien skaalamisen useille Docker-daemoneille. Tulos tunnetaan parvena, joukko yhteistyössä toimivista daemoneista, jotka kommunikoivat Docker-sovellusliittymän kautta.

Rekisterit

Docker-rekisteri on Docker-imagejen repositorio. Docker-klientit muodostavat yhteyden rekistereihin lataamaan ("pull") imageja käytettäviksi tai lähettämään ("push") imageja, jotka he ovat buildaneet. Rekisterit voivat olla julkisia tai yksityisiä. Kaksi julkista rekisteriä ovat Docker Hub ja Docker Cloud. Docker Hub on oletusrekisteri, josta Docker etsii kuvia. Docker-rekisterit mahdollistavat myös tapahtumiin perustuvien ilmoitusten luomisen.

Linkit ulkopuolisiin lähteisiin

Avainsanat harjoitustehtävän repositoriossa