Android

Docker-ajokomento esimerkein

Sisällysluettelo:

Anonim

Docker on alusta, jonka avulla voit kehittää, testata ja ottaa käyttöön sovelluksia kannettavina, omavaraisina säiliöinä, jotka toimivat käytännössä missä tahansa.

docker run komento luo säilön annetusta kuvasta ja käynnistää säilön annetulla komennolla. Se on yksi ensimmäisistä komennoista, jotka sinun tulee perehtyä työskennellessäsi Dockerin kanssa., käytämme virallista Nginx-kuvaa näyttääksesi erilaisia ​​tapoja suorittaa Docker-säilö.

Telakka-ajon komento

docker run ajokomento on seuraavassa muodossa:

docker run IMAGE

Sen kuvan nimi, josta säilö tulisi luoda, on ainoa vaadittava argumentti docker run -komennolle. Jos kuvaa ei ole läsnä paikallisjärjestelmässä, se poistetaan rekisteristä.

Jos komentoa ei määritetä, Dockerfilen CMD tai ENTRYPOINT ohjeissa määritetty komento suoritetaan, kun ajetaan säilöä.

Versiosta 1.13 alkaen Docker CLI on rakenneuudistettu ja kaikki komennot on ryhmitelty sen objektin alle, jonka kanssa ne ovat vuorovaikutuksessa.

Koska run komento on vuorovaikutuksessa säilöiden kanssa, se on nyt docker container . Uuden komennon syntaksi on seuraava:

docker container run IMAGE

Vanhaa, 1.13 edeltävää syntaksia tuetaan edelleen. docker run alla docker run -komento on aliaksen docker container run . Käyttäjiä kannustetaan käyttämään uutta komentojen syntaksia.

Luettelo kaikista Docker-säilöasennuksen vaihtoehdoista löytyy Docker-dokumentaatiosivulta.

Suorita kontti etualalla

Oletusarvon mukaan, kun mitään ei aseteta docker run -komennolle, docker run käynnistetään etualalla. Tämä tarkoittaa, että juuriprosessin vakiotulo, lähtö ja virhe liitetään pääteistuntoon.

docker container run nginx

Nginx-prosessin lähtö näkyy terminaalissasi. Koska web-palvelimeen ei ole yhteyttä, pääte on tyhjä.

Voit pysäyttää säilön lopettamalla käynnissä olevan Nginx-prosessin painamalla CTRL+C

Suorita kontti irrotetussa tilassa

Käynnistä se erillisessä tilassa, jotta säilytä säiliö käynnissä, kun poistut terminaaliistunnosta. Tämä on samanlainen kuin Linux-prosessin ajaminen taustalla.

Käytä -d asetusta aloittaaksesi irrotetun säiliön:

docker container run -d nginx

050e72d8567a3ec1e66370350b0069ab5219614f9701f63fcf02e8c8689f04fa

Irrotettu säiliö pysähtyy, kun juuriprosessi lopetetaan.

Voit luetteloida käynnissä olevat säilytyslaitteet docker container ls -komennolla.

Liitä päätelaite erilliseen docker container attach käyttämällä docker container attach .

Poista säilytysastia poistumisen jälkeen

Oletuksena, kun säilö poistuu, sen tiedostojärjestelmä jatkuu isäntäjärjestelmässä.

--rm asetukset --rm docker run -komennon poistamaan säilö, kun se poistuu automaattisesti:

docker container run --rm nginx

Nginx-kuva ei ehkä ole paras esimerkki säilön tiedostojärjestelmän puhdistamiseksi säilön poistumisen jälkeen. Tätä vaihtoehtoa käytetään yleensä etualalla olevissa säiliöissä, jotka suorittavat lyhytaikaisia ​​tehtäviä, kuten testejä tai tietokannan varmuuskopioita.

Aseta säiliön nimi

Dockerissa jokainen säilö tunnistetaan UUID ja nimellä. Oletusarvoisesti, jos Docker-demoni luo säiliön nimen automaattisesti, jos sitä ei määritetä erikseen.

Määritä muokattu nimi --name vaihtoehdon avulla:

docker container run -d --name my_nginx nginx

Säiliön nimen on oltava yksilöivä. Jos yrität käynnistää toisen samannimisen säilön, saat samanlaisen virheen:

docker: Error response from daemon: Conflict. The container name "/my_nginx" is already in use by container "9…c". You have to remove (or rename) that container to be able to reuse that name.

Suorita docker container ls -a jotta docker container ls -a kaikki astiat ja näet niiden nimet:

docker container ls

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9d695c1f5ef4 nginx "nginx -g 'daemon of…" 36 seconds ago Up 35 seconds 80/tcp my_nginx

Merkitykselliset nimet ovat hyödyllisiä viitaamaan säilöön Docker-verkossa tai suorittaessaan Docker CLI -komentoja.

Konttiporttien julkaiseminen

Oletuksena, jos portteja ei julkaista, säilössä olevaan prosessiin pääsee vain säilön sisäpuolelta.

Porttien julkaiseminen tarkoittaa konttiporttien kartoittamista isäntäkoneen portteihin siten, että portit ovat palveluiden käytettävissä Dockerin ulkopuolella.

Voit julkaista portin käyttämällä -p vaihtoehtoja seuraavasti:

-p host_ip:host_port:container_port/protocol

  • Jos host_ip ei määritetä, sen oletusarvo on 0.0.0.0 . Jos protocol ei määritetä, TCP: n oletusarvo. Jos haluat julkaista useita portteja, käytä useita pp-vaihtoehtoja.

Karttaaksesi säilön TCP-portti 80 (nginx) porttiin 8080 isäntä localhost-käyttöliittymässä, suorita:

docker container run --name web_server -d -p 8080:80 nginx

Voit varmistaa, että portti on julkaistu avaamalla selaimessa http://localhost:8080 tai suorittamalla seuraavan curl komennon Docker-isännässä:

curl -I

Tulos näyttää tältä:

HTTP/1.1 200 OK Server: nginx/1.17.6 Date: Tue, 26 Nov 2019 22:55:59 GMT Content-Type: text/html Content-Length: 612 Last-Modified: Tue, 19 Nov 2019 12:50:08 GMT Connection: keep-alive ETag: "5dd3e500-264" Accept-Ranges: bytes

Tietojen jakaminen (asennusmäärät)

Kun säilö pysäytetään, kaikki säilön luomat tiedot poistetaan. Docker-volyymit ovat suositeltava tapa saada tiedot säilymään ja jakaa ne useiden säilytysastioiden välillä.

Voit luoda ja hallita taltioita käyttämällä -p vaihtoehtoja seuraavasti:

-v host_src:container_dest:options

  • host_src voi olla ehdoton polku tiedostoon tai hakemistoon isännässä tai nimetylle host_src . host_src on ehdoton polku tiedostoon tai hakemistoon host_src voivat olla rw (read-write) ja ro (only-read)). Jos vaihtoehtoa ei määritetä, sen oletusarvo on rw .

Selittääksesi miten tämä toimii, luomalla hakemisto isäntään ja lisäämällä siihen index.html tiedosto:

mkdir public_html echo "Testing Docker Volumes" > public_html/index.html

Asenna seuraavaksi public_html hakemisto säilöön /usr/share/nginx/html :

docker run --name web_server -d -p 8080:80 -v $(pwd)/public_html:/usr/share/nginx/html nginx

Sen sijaan, että määrittäisimme absoluuttisen polun public_html hakemistoon, käytämme $(pwd) -komentoa, joka tulostaa nykyisen työhakemiston.

Jos kirjoitat selaimeesi http://localhost:8080 , sinun pitäisi nähdä index.html tiedoston sisältö. Voit käyttää myös curl :

curl

Testing Docker Volumes

Suorita kontti interaktiivisesti

Kun käsittelet interaktiivisia prosesseja, kuten bash , käytä -i ja -t -vaihtoehtoja aloittaaksesi säilön.

-it asetukset käskevät Dockeria pitämään vakiotulon kiinni päätelaitteessa ja varaamaan näennäistiedon:

docker container run -it nginx /bin/bash

Säiliön Bash-kuori kiinnitetään terminaaliin, ja komentorivi muuttuu:

root@1da70f1937f5:/#

Nyt voit olla vuorovaikutuksessa kontin kuoren kanssa ja suorittaa mitä tahansa komentoja sen sisällä.

Tässä esimerkissä toimitimme komennon ( /bin/bash ) argumenttina docker run -komennolle, joka suoritettiin Docker-tiedostossa määritetyn sijasta.

johtopäätös

Docker on sovellusten pakkaamisen ja käyttöönoton standardi ja olennainen osa CI / CD, automaatio ja DevOps.

Docker-säilön suorituskomentoa käytetään Docker-säilöjen luomiseen ja ajamiseen.

satamatyöläinen