Provisioning for Sailing an Ocean, [An Exact Sailboat Provisioning List] Patrick ChildressSailing#20
Sisällysluettelo:
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
FROMargumentissa. Tässä tapauksessaFROMvoi edeltää yksi tai useampiARGkäsky. LABEL - Käytetään lisäämään kuvaan metatietoja, kuten kuvaus, versio, tekijä..etc. Voit määrittää useamman kuin yhdenLABEL, ja jokainenLABELkäsky on avain-arvo-pari. RUN - Tässä ohjeessa määritetyt komennot suoritetaan rakennusprosessin aikana. JokainenRUNkä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 kuinADDmutta 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äCMDkäskyä Dockerfilessäsi. ENTRYPOINT - Samoin kuinCMD, tämä ohje määrittelee, mikä komento suoritetaan, kun ajetaan konttia. WORKDIR - Tämä direktiivi asettaa nykyisen työhakemistonRUN,CMD,ENTRYPOINT,COPYjaADDohjeille. KÄYTTÄJÄ - Aseta käyttäjänimi taiUIDkäytettäväksi suoritettaessa seuraaviaRUN,CMD,ENTRYPOINT,ENTRYPOINTjaENTRYPOINTohjeita. 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.
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ä
1määrittelemme peruskuvan. Riviltä3alkavaRUNkä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.EXPOSEkäsky määrittelee portin, jota redis-palvelin kuuntelee. Viimeisellä rivillä käytämmeCMDkä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.
Kuinka luoda helposti interaktiivisia infografioita infogr.am: n avulla
Opi kuinka helposti luoda interaktiivisia infografioita Infogr.am: n avulla.
Kuinka luoda henkilökohtainen pilvipalvelin tonidon avulla
Opi luomaan henkilökohtainen pilvipalvelin Tonidon avulla.
Kuinka luoda oma mediapalvelin mac- tai ios-ohjelmistoon pleksin avulla
Katsaus Plexiin, median suoratoistopalveluun, jonka avulla voit nauttia medioistasi kaikilla laitteillasi.







