Android

Kuinka luoda docker-kuvia docker-tiedoston avulla

Provisioning for Sailing an Ocean, [An Exact Sailboat Provisioning List] Patrick ChildressSailing#20

Provisioning for Sailing an Ocean, [An Exact Sailboat Provisioning List] Patrick ChildressSailing#20

Sisällysluettelo:

Anonim

Docker-kuva on Docker-säiliöiden suunnitelma, joka sisältää sovelluksen ja kaiken, mitä tarvitset sovelluksen suorittamiseen. Säiliö on kuvan ajonaikainen esimerkki.

Tässä opetusohjelmassa selitetään mitä Dockerfile on, kuinka luodaan ja miten rakennetaan Docker-kuva Dockerfilellä.

Mikä on Dockerfile

Dockerfile on tekstitiedosto, joka sisältää kaikki komennot, joita käyttäjä voi suorittaa komentorivillä kuvan luomiseksi. Se sisältää kaikki ohjeet, joita Docker tarvitsee kuvan luomiseen.

Docker-kuvat koostuvat sarjasta tiedostojärjestelmäkerroksia, jotka edustavat kuvan Docker-tiedostossa olevia ohjeita, jotka muodostavat suoritettavan ohjelmistosovelluksen.

Docker-tiedosto on seuraavassa muodossa:

# Comment INSTRUCTION arguments

INSTRUCTION ei ole kirjainkoolla, mutta yleisesti käytetään nimien YLÖSKIRJA-painiketta.

Alla on luettelo lyhyt kuvaus joihinkin käytetyimmistä Dockerfile-ohjeista:

  • ARG - Tämän ohjeen avulla voit määrittää muuttujat, jotka voidaan siirtää rakennusaikana. Voit myös asettaa oletusarvon. FROM - peruskuva uuden kuvan rakentamiseksi. Tämän ohjeen on oltava ensimmäinen asiakirja, joka ei sisällä kommenttia. Ainoa poikkeus tästä säännöstä on, kun haluat käyttää muuttujaa FROM argumentissa. Tässä tapauksessa FROM voi edeltää yksi tai useampi ARG käsky. LABEL - Käytetään lisäämään kuvaan metatietoja, kuten kuvaus, versio, tekijä..etc. Voit määrittää useamman kuin yhden LABEL , ja jokainen LABEL käsky on avain-arvo-pari. RUN - Tässä ohjeessa määritetyt komennot suoritetaan rakennusprosessin aikana. Jokainen RUN käsky luo uuden tason nykyisen kuvan päälle. LISÄÄ - Käytetään tiedostojen ja hakemistojen kopiointiin määritetystä lähteestä telakointikuvan määritettyyn määränpäähän. Lähde voi olla paikalliset tiedostot tai hakemistot tai URL. Jos lähde on paikallinen tar-arkisto, se puretaan automaattisesti Docker-kuvaan. KOPIO - Samanlainen kuin ADD mutta lähde voi olla vain paikallinen tiedosto tai hakemisto. ENV - Tämän ohjeen avulla voit määrittää ympäristömuuttujan. CMD - Käytetään komennon määrittämiseen, joka suoritetaan, kun suoritat säilön. Voit käyttää vain yhtä CMD käskyä Dockerfilessäsi. ENTRYPOINT - Samoin kuin CMD , tämä ohje määrittelee, mikä komento suoritetaan, kun ajetaan konttia. WORKDIR - Tämä direktiivi asettaa nykyisen työhakemiston RUN , CMD , ENTRYPOINT , COPY ja ADD ohjeille. KÄYTTÄJÄ - Aseta käyttäjänimi tai UID käytettäväksi suoritettaessa seuraavia RUN , CMD , ENTRYPOINT , ENTRYPOINT ja ENTRYPOINT ohjeita. VOLUME - Voit asentaa isäntäkonehakemiston säilöön. EXPOSE - Käytetään portin määrittämiseen, jota säilö kuuntelee ajon aikana.

Jos haluat poistaa tiedostoja ja hakemistoja lisäyksestä kuvaan, luo .dockerignore tiedosto kontekstihakemistoon. .dockerignore syntaksi on samanlainen kuin Gitin .gitignore tiedoston .gitignore .

Katso täydellinen ohje ja yksityiskohtainen selitys Dockerfile-ohjeista virallisella Dockerfile-viitesivulla.

Luo Docker-tiedosto

Yleisin skenaario Docker-kuvien luomisessa on vetää olemassa oleva kuva rekisteristä (yleensä Docker Hubista) ja määrittää muutokset, jotka haluat tehdä peruskuvassa. Docker-kuvia luotaessa yleisimmin käytetty peruskuva on Alpine, koska se on pieni ja optimoitu toimimaan RAM-muistissa.

Docker Hub on pilvipohjainen rekisteripalvelu, jota muiden toimintojen lisäksi käytetään pitämään Docker-kuvia joko julkisessa tai yksityisessä arkistossa.

Tässä esimerkissä luomme Docker-kuvan Redis-palvelimelle. Käytämme pohjakuvana viimeisintä ubuntu 18.04 -tuotetta.

Luo ensin hakemisto, joka sisältää Dockerfile-tiedoston ja kaikki tarvittavat tiedostot:

mkdir ~/redis_docker

Siirry hakemistoon ja luo seuraava Docker-tiedosto:

cd ~/redis_docker nano Dockerfile Dockerfile

FROM ubuntu:18.04 RUN apt-get update && \ apt-get install -y redis-server && \ apt-get clean EXPOSE 6379 CMD

Selitetään jokaisen Dockerfile-rivin merkitys:

  • Rivillä 1 määrittelemme peruskuvan. Riviltä 3 alkava RUN käsky päivittää apt-hakemiston, asentaa ”redis-server” -paketin ja puhdistaa apt-välimuistin. Ohjeissa käytetyt komennot ovat samat kuin komennot, joita käyttäisit uudelleenasennuksen yhteydessä Ubuntu-palvelimelle. EXPOSE käsky määrittelee portin, jota redis-palvelin kuuntelee. Viimeisellä rivillä käytämme CMD käskyä asettaaksesi oletuskomennon. joka suoritetaan, kun säilö ajetaan.

Tallenna tiedosto ja sulje editori.

Kuvan rakentaminen

Seuraava askel on kuvan rakentaminen. Suorita tämä suorittamalla seuraava komento hakemistosta, jossa Dockerfile sijaitsee:

docker build -t linuxize/redis.

Vaihtoehto -t määrittelee kuvan nimen ja valinnaisesti käyttäjänimen ja tunnisteen 'käyttäjänimi / kuvanimi: tagi' -muodossa.

Rakennusprosessin tulos näyttää noin:

Sending build context to Docker daemon 3.584kB Step 1/4: FROM ubuntu:18.04 ---> 7698f282e524 Step 2/4: RUN apt-get update && apt-get install -y gosu redis-server && apt-get clean ---> Running in e80d4dd69263… Removing intermediate container e80d4dd69263 ---> e19fb7653fca Step 3/4: EXPOSE 6379 ---> Running in 8b2a45f457cc Removing intermediate container 8b2a45f457cc ---> 13b92565c201 Step 4/4: CMD ---> Running in a67ec50c7048 Removing intermediate container a67ec50c7048 ---> d8acc14d9b6b Successfully built d8acc14d9b6b Successfully tagged linuxize/redis:latest

Kun rakennusprosessi on valmis, uusi kuva luetellaan kuvalistassa:

docker image ls

REPOSITORY TAG IMAGE ID CREATED SIZE linuxize/redis latest d8acc14d9b6b 4 minutes ago 100MB ubuntu 18.04 7698f282e524 5 days ago 69.9MB

Kontin ajaminen

Nyt kun kuva on luotu, ajat säilön siitä ajamalla:

docker run -d -p 6379:6379 --name redis linuxize/redis

-d asetukset käskevät Dockeria ajamaan säilöä erillisessä tilassa, -p 6379:6379 -vaihtoehto julkaisee portin 6379 isäntäkoneelle ja --name redis -vaihtoehto määrittelee säilön nimen. Viimeinen linuxize/redis argumentti on kuvan nimi, jota käytetään säilön suorittamiseen.

Kun säilö alkaa, luetele kaikki käynnissä olevat säilöt seuraavan komennon avulla:

docker container ls

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6b7d424cd915 linuxize/redis:v0.0.1 "redis-server '--pro…" 5 minutes ago Up 5 minutes 0.0.0.0:6379->6379/tcp redis

Varmistaaksesi, että kaikki toimii niin kuin se pitäisi käyttää redis-cli muodostaaksesi yhteyden telakointiasemaan:

redis-cli ping

Redis-palvelimen tulisi vastata PONG .

johtopäätös

Tämä opetusohjelma kattoi vain Dockerfiles-sovellusten käytön perusteet kuvien luomiseen. Lisätietoja Dockerfiles-tiedostojen kirjoittamisesta ja suositelluista parhaista käytännöistä on ohjeaiheissa Dockerfiles-tiedostojen kirjoittamisen parhaat käytännöt.

satamatyöläinen