Mikä on mielestäsi minkä tahansa verkkopohjaisen sovelluksen tärkeä ominaisuus? Niitä on monia, mutta minulle se on korkea tuottavuus, ja sitä Docker Compose tekee.
Docker on laajalti käytetty konttityökalu, jota kehittäjät ja käyttöryhmät käyttävät sovellusten luomiseen ja automatisoimiseen virtuaalikoneiden kevyissä säiliöissä. Tämä tehdään sen varmistamiseksi, että sovellukset toimivat tehokkaasti useissa ympäristöissä.
Huomautus: Säilöt ovat ohjelmistopaketti, joka toimii kaikkien sovelluksen suorittamiseen tarvittavien riippuvuuksien kanssa.
Tarkastellaanpa nyt tapausta, jossa haluat käyttää kahta säilöä yhdessä palvelussa? Mitä aiot tehdä? Ymmärretään tämä kysymys esimerkin avulla, jotta se olisi selkeämpi.
Oletetaan, että Dockerissa on useampi kuin yksi kontti. Oletetaan, että verkkopalvelin ja tietokanta toimivat erillisissä säilöissä, mikä on tyypillistä tietorakenteelle. Rakennus, juoksu ja konttien yhdistäminen erilläänDocker-tiedostoton vaikeaa ja voi viedä paljon aikaa. Tässä Docker Compose tulee käyttöön. Se mahdollistaa useiden palvelujen samanaikaisen käytön.
Opi käsitteitä – perusteista edistyneeseen!
Caltech-ohjelma DevOpsissaTutustu ohjelmaan
Mikä on Docker Compose?
Docker Compose on työkalu, joka auttaa määrittämään ja jakamaan monisäiliösovelluksia. Composea käyttämällä voimme määritellä palvelut YAML-tiedostoon sekä pyörittää ja purkaa ne yhdellä komennolla.
Ymmärtääksemme Docker Composea, katsotaanpa Myntraa esimerkkinä. Myntra on Amazonin kaltainen muotiverkkokauppasivusto. Vierailet Myntran verkkosivustolla verkkoselaimen kautta ja käyt läpi useita toimintoja, kuten kirjautumisen tilillesi, selaat luetteloa, kirjaudut ulos ja niin edelleen. Jokaisen toiminnan tai palvelun takana on erilaisia tuotteita, kuten tilitietokanta, tuotetietokanta, ostoskoritietokanta ja muut kulissien takana toimivat tuotteet.
Jokaista näistä voidaan pitää mikropalveluna. Mitä enemmän mikropalveluita rakennat ympäristöösi, sitä arvokkaampaa on, että jokainen näistä palveluista on säiliöissään. Mutta kehittäjänä sinun pitäisi pystyä hyppäämään säiliöstä toiseen. Tässä voit liittää tämän esimerkin Dockeriin, jossa Docker Compose voi yhdistää eri säilöjä yhdeksi palveluksi.
Docker Composea käytetään useiden säiliöiden ajamiseen yhtenä palveluna. Jokainen täällä olevista säiliöistä toimii erillään, mutta voi tarvittaessa olla vuorovaikutuksessa toistensa kanssa. Docker Compose -tiedostoja on erittäin helppo kirjoittaa YAML-nimisellä komentosarjakielellä, joka onXML-pohjainen kieli, joka tarkoittaa Yet Another Markup Language. Toinen hieno asia Docker Composessa on, että käyttäjät voivat aktivoida kaikki palvelut (säilöt) yhdellä komennolla.
Esimerkiksi:
Jos sinulla on sovellus, joka vaatii NGINX-palvelimen ja Redis-tietokannan, voit luoda Docker Compose -tiedoston, joka voi käyttää molempia säilöjä palveluina ilman, että niitä tarvitsee käynnistää erikseen.
Docker Composen edut
- Yhden isännän käyttöönotto – Tämä tarkoittaa, että voit käyttää kaikkea yhdellä laitteistolla
- Nopea ja helppo konfigurointi - YAML-skriptien ansiosta
- Korkea tuottavuus – Docker Compose vähentää tehtävien suorittamiseen kuluvaa aikaa
- Turvallisuus - Kaikki säiliöt on eristetty toisistaan, mikä vähentää uhkamaisemaa
Nyt saatat ajatella, että Docker Compose on melko samanlainen kuin Docker Swarm, mutta niin ei ole. Tässä on joitain eroja Docker Composen jaDocker Swarm:
Ansaitse halutuin DevOps-sertifikaatti!
DevOps Engineer Master -ohjelmaTutustu ohjelmaan
Docker Composen peruskomennot
- Käynnistä kaikki palvelut: Docker Compose up
- Pysäytä kaikki palvelut: Docker Compose alas
- Asenna Docker Compose käyttämällä pip:tä: pip install -U Docker-compose
- Tarkista Docker Composen versio: Docker-compose-v
- Suorita Docker Compose -tiedosto: Docker-compose up -d
- Listaa koko prosessi: Docker ps
- Skaalaa palvelu - Docker Compose up -d -scale
- Käytä YAML-tiedostoja sovelluspalvelujen määrittämiseen - Docker Compose.yml
Nämä ovat joitain peruskomentoja, joita voit käyttää Docker Composessa. Jos haluat katsoa demon siitä, kuinka voit käyttää kaikkia näitä komentoja Docker Composessa,Klikkaa tästäkatsoa Simplilearnin opetusvideo aloittelijoille.
Asenna Docker Compose
Sukellaanpa syvästi Docker Composen asentamiseen Windowsiin, Linuxiin ja macOS:ään. Ennen asennukseen ryhtymistä meillä on joitain edellytyksiä; Katsotaanpa ja määritellään nämä edellytykset.
Edellytykset
Docker Enginen on oltava asennettuna etä- tai paikallisesti, jotta voimme asentaa Docker Composen.
Katsotaanpa Docker Enginen vaadittuja asetuksia -
- Docker Compose on esiasennettu työpöytäalustoihin, kuten Docker Desktop for Windows ja Mac.
- Asenna Docker Engine käyttöjärjestelmällesi Get Docker -sivun ohjeiden mukaisesti Linux-järjestelmissä ja palaa sitten tänne saadaksesi Docker Composen asennusohjeet Linux-järjestelmiin.
Asennus
Alla on yhteenveto Docker Composen asennuksen vaiheista macOS:ssä, Linuxissa ja Windowsissa.
Asenna Docker Compose macOS:ään
Docker Composen käyttäminen macOS:ssä tarvitsee vain Docker Desktop for Macin asennettuna, eikä Docker Composea tarvitse asentaa erikseen.
Asenna Docker Compose Linuxiin
Docker Compose -sovelluksen suorittamiseksi Linuxissa meidän on ladattava Docker Compose -binaari käyttämälläGithubin Compose-arkiston julkaisusivu.
Noudata alla olevia ohjeita asentaaksesi Docker Compose onnistuneesti -
- Lataa Docker Composen nykyinen vakaa versio suorittamalla alla oleva komento -
sudo curl -L "https://github.com/docker/compose/releases/download/
- Hae binääriin suoritettavan ohjelman käyttöoikeuksia.
sudo chmod +x /usr/local/bin/docker-compose
- Seuraavaksi siirry asennustestaukseen suorittamalla alla oleva komento.
docker-compose --versio
Asenna Docker Compose Windowsiin
Docker Composeen käyttäminen Windowsissa edellyttää, että Docker Desktop for Windows on asennettuna, eikä Docker Composea tarvitse asentaa erikseen.
Paranna projektinhallintataitojasi
PRINCE2® Foundation & Practitioner -sertifikaattiTutustu kurssiin
Luo kirjoitustiedosto
Seuraava vaihe on luoda kirjoitustiedosto Docker Composea varten.
Luo tämä tiedosto noudattamalla alla olevia ohjeita -
- Luo tiedosto nimeltä docker-compose.yml projektin juureen.
- Jatkamme sitten määrittämällä ja mainitsemalla skeeman version -
versio: "
- Jotta voimme suorittaa sovelluksemme osana, määritämme luettelon konteista tai palveluista -
versio: "
palvelut:
Jatkamme sitten palvelun siirtämistä yksi kerrallaan jo luotuun Compose-tiedostoomme.
Määrittele erilaisia palveluita
Sovellussäiliön määrittämiseksi käytämme seuraavaa komentoa -
Docker run -dp 3000:3000 \
-w /app -v "$(pwd):/app" \
--verkkotehtävä-sovellus \
-e MYSQL_HOST=
-e MYSQL_USER=root \
-e MYSQL_PASSWORD=salainen \
-e MYSQL_DB=
solmu: 12-alppi \
sh -c "lanka asennus && lanka ajaa dev"
Jos käytämme PowerShellia, voimme käyttää alla olevaa komentoa -
PS> Docker run -dp 3000:3000 `
-w /app -v "$(pwd):/app" `
--verkko all-app `
-e MYSQL_HOST=
-e MYSQL_USER=root `
-e MYSQL_PASSWORD=salainen `
-e MYSQL_DB=
solmu: 12-alppi `
sh -c "lanka asennus && lanka ajaa dev"
Toimintapäällikkö vai tilintarkastaja? Sinun valintasi
Lean Six Sigma Green Belt -koulutuskurssiTutustu ohjelmaan
Noudata nyt alla olevia ohjeita määrittääksesi Docker Compose -sovelluksen eri palvelut -
1. Meidän on määritettävä säilön kuva- ja palvelumerkintä. Meidän on valittava palvelullemme mukautettu nimi, josta tulee verkkoaliaksemme ja josta on hyötyä MySQL-palvelun määrittelyssä.
versio: "4.2"
palvelut:
sovellus:
kuva: node:12-alpine
2. Lähellä kuvan määritelmää, näet komennon. Siirrämme tämän nyt tiedostoomme.
Huomaa: Tilausta ei tarvita.
versio: "4.2"
palvelut:
sovellus:
kuva: node:12-alpine
komento: sh -c "lanka asennus && lanka ajaa dev"
3. Määrittelemme palvelulle portit komennon -p 3000:3000 -osan siirtämiseksi. Samasta syystä käytämme tässä lyhyttä syntaksia.
versio: "4.2"
palvelut:
sovellus:
kuva: node:12-alpine
komento: sh -c "lanka asennus && lanka ajaa dev"
portit:
- 3000:3000
4. Nyt siirrämme volyymikartoituksen (-v "$(pwd):/app") ja työhakemiston (-w /app) käyttämällä määritelmiä volyymeistä ja work_dir. Volumeilla on myös sekä lyhyt että pitkä syntaksi.
Huomautus: Docker Composen taltiomääritelmien etuna on, että voimme käyttää suhteellisia polkuja nykyisestä hakemistosta.
versio: "4.2"
palvelut:
sovellus:
kuva: node:12-alpine
komento: sh -c "lanka asennus && lanka ajaa dev"
portit:
- 3000:3000
work_dir: /app
määrät:
- ./:/sovellus
5. Ympäristöavaimen avulla meidän on siirrettävä ympäristömuuttujien määritelmät.
versio: "4.2"
palvelut:
sovellus:
kuva: node:12-alpine
komento: sh -c "lanka asennus && lanka ajaa dev"
portit:
- 3000:3000
work_dir: /app
määrät:
- ./:/sovellus
ympäristö:
MYSQL_HOST: mysql
MYSQL_USER: root
MYSQL_PASSWORD: salainen
MYSQL_DB:
Ansaitse halutuin DevOps-sertifikaatti!
DevOps Engineer Master -ohjelmaTutustu ohjelmaan
Suorita Application Stack
Nyt meidän on käynnistettävä luomamme kirjoitustiedosto.
- Varmista ensin, ettei sovelluksesta ole käynnissä muita kopioita (docker rm -f
ja docker ps). - Docker-compose up -komennolla meidän on käynnistettävä sovelluspino. Jos haluat suorittaa kaiken taustalla, meidän on käytettävä -d-lippua.
docker-compose up -d
Lähtö:
Luodaan verkkoa "app_default" oletusohjaimella
Luodaan asemaa "
Luodaan app_app_1 ... valmis
Sovelluksen_mysql_1 luominen ... valmis
- Toteuttamalla docker-compose logs -f -komennon meidän on tutkittava lokit. Jokainen palveluiden loki yhdistetään yhdeksi streamiksi. Jos meidän on pidettävä silmällä ajoitusongelmia, tämä on todella kätevää. Lippu -f "seuraa" lokia, joten saat reaaliaikaisia tuloksia, kun niitä luodaan.
Tulos näyttää samalta kuin alla -
mysql_1 | 2019-10-03T03:07:16.083639Z 0 [Huom.] mysqld: valmis yhteyksiä varten.
mysql_1 | Versio: '5.7.27' socket: '/var/run/mysqld/mysqld.sock' portti: 3306 MySQL Community Server (GPL)
app_1 | Yhdistetty mysql db:iin isännässä mysql
app_1 | Kuuntele portti 3000
Huomautus: Viestien tunnistamisen helpottamiseksi palvelun nimi tulostetaan rivin alkuun (yleensä värillinen). Palvelun nimi voidaan sisällyttää lokikomentojen loppuun, jotta voit tarkastella tietyn palvelun lokeja (esimerkiksi Docker-compose logs -f-sovellus).
- Meidän on voitava käyttää sovellustamme ja nähdä sen käynnissä tässä vaiheessa. Meillä on nyt vain yksi komento jäljellä.
App Stack Docker Dashboardissa
Docker Dashboardista löydämme ryhmän nimeltä app. Tämä on Docker Compose "projektin nimi", jota käytetään säilöjen järjestämiseen yhteen. Projektin nimi on sama kuin sen hakemiston nimi, josta docker-compose.yml löytyy oletuksena.
Näemme kaksi kirjoitustiedostossa määritettyä säilöä, jos pyöritämme sovellusta alaspäin. Koska ne noudattavat kaavaa projektin_nimi> palvelun_nimi> replikan numero> kuvaavammilla nimillä. Tämän seurauksena MySQL-tietokantasäiliön ja sovellussäilön tunnistaminen on helppoa.
Lisätietoja Dockerista
Jos haluat hallita kaiken Dockerin, tutustu SimplilearniinDockerin perusteellinen sertifiointikurssitänään. Tällä kattavalla kurssilla saat neljä tuntia omatoimista oppimista, neljä luvun lopun tietokilpailua ja mahdollisuuden työskennellä käytännön projekteissa.