Mikä on Dockerfile ja kuinka luodaan Docker-kuva?

Työskennellessäsi telakointiprojekteissa, suurin osa ajasta, olemassa olevat telakkakuvat eivät täytä vaatimuksiasi.


Täältä Dockerfile tulee kuvaan; se auttaa sinua luomaan mukautettuja Docker-kuvia. Siksi Dockerfile-tiedostaminen on välttämätöntä.

Mikä on Dockerfile?

Se on yksinkertainen tekstitiedosto, jossa on joukko komentoja tai ohjeita. Nämä komennot / käskyt suoritetaan peräkkäin suorittamaan toimia peruskuvassa uuden telakoitsijakuvan luomiseksi.

kommentit ja komennot + argumentit ovat kahdenlaisia ​​päärivinlohkoja Dockerfile-syntaksissa

Kommentit Syntaksi

# Kommentointiin käytetyt linjalohkot

komentoargumentti argumentti1…..

Komennot + argumentit Esimerkki

# Kommentointiin käytetyt linjalohkot

komentoargumentti argumentti1…..

Alla on miten työnkulku näyttää.

  • Luo Docker-tiedosto ja mainitse ohjeet Docker-kuvan luomiseksi
  • Suorita docker build -komento, joka rakentaa docker-kuvan
  • Nyt telakointikuva on käyttövalmis, luo telakointiasema ajo -komennolla

docker-tiedoston työnkulku

Peruskomennot

FROM – Määrittää käytettävän peruskuvan ja käynnistää rakennusprosessin.

JUOSTA – Se vie komennon ja argumentit sen ajamiseksi kuvasta.

CMD – Samanlainen toiminto kuin RUN-komennolla, mutta se suoritetaan vasta, kun säilö on toteutettu.

SISÄÄNTULOPISTE – Se kohdistaa kuvan oletussovelluksen, kun säilö luodaan.

LISÄTÄ – Se kopioi tiedostot lähteestä määränpäähän (säilön sisällä).

ENV – Asettaa ympäristömuuttujat.

Kuinka luoda Docker-kuva Dockerfilellä?

Ensinnäkin luodaan Docker-tiedosto.

[Email protected]: ~ $ gedit Dockerfile

Laita alla olevat komennot / ohjeet siihen ja tallenna se.

# Aseta peruskuvan arvoksi Ubuntu
Ubuntusta

# Päivitä arkiston lähdeluettelo ja asenna gnupg2
RUN apt-get-päivitys && apt-get install -y gnupg2

# Lisää paketin varmennusavain
RUN apt-key adv – avainserver hkp: //keyserver.ubuntu.com: 80 – recv 7F0CEB10

# Lisää MongoDB arkiston lähdeluetteloon
RUN echo ‘deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen’ > tee /etc/apt/sources.list.d/mongodb.list

# Päivitä arkiston lähdeluettelo
RUN apt-get-päivitys

# Asenna MongoDB-paketti (.deb)
RUN apt-get install -y mongodb

# Luo oletusdatahakemisto
RUN mkdir -p / data / db

# Paljasta oletusportti
ALTISTUMINEN 27017

# Oletusportti tulopisteen suorittamiseksi (MongoDB)
CMD ["–portti 27017"]

# Aseta säiliön oletuskomento
ENTRYPOINT usr / bin / mongodb

Tässä Docker-tiedostossa ubuntu asetetaan peruskuvana. Sitten mainitaan tarvittavat komennot ja argumentit MongoDB: n asentamiseksi. Portti 27017 altistetaan MongoDB: lle oletuskontokomennolla usr / bin / mongodb

Seuraavaksi aion sitä luoda telakkakuvan.

Docker-tiedoston suorittaminen

Seuraava komento luo geekflare_mongodb-nimisen satamakuvan onnistuneen suorituksen jälkeen.

[Email protected]: ~ $ docker build -t geekflare_mongodb .

Lähetetään rakennuskonteksti Docker-daemonille 667.2MB

Vaihe 1/9: Ubuntusta

viimeisin: Vedäminen kirjastosta / ubuntu

7413c47ba209: Vedä täydellinen

0fe7e7cbb2e8: Vedä loppuun

1d425c982345: Vedä täydellinen

344da5c95cec: Vedä täydellinen

Yhteenveto: sha256: c303f19cfe9ee92badbbbd7567bc1ca47789f79303ddcef56f77687d4744cd7a

Tila: Ubuntu-sovellukseen ladattu uudempi kuva: viimeisin

—> 3556258649b2

Vaihe 2/10: RUN apt-get-päivitys && apt-get install -y gnupg2

—> Käynnissä de3706328761

Hanki: 1 http://security.ubuntu.com/ubuntu bionic-security InRelease [88,7 kt]

Hanki: 2 http://archive.ubuntu.com/ubuntu bioninen InRelease [242 kt]

Haettu 16,9 Mt 38 sekunnissa (445 kB / s)

Pakettiluetteloiden lukeminen…

Pakettiluetteloiden lukeminen…

Riippuvuuspuun rakentaminen…

Tilatietojen lukeminen…

Tarve saada 5187 kB arkistoja.

Tämän toimenpiteen jälkeen käytetään 15,8 Mt lisää levytilaa.

Hanki: 1 http://archive.ubuntu.com/ubuntu bionic / main amd64 readline-common kaikki 7.0-3 [52,9 kB]

Hanki: 2 http://archive.ubuntu.com/ubuntu bionic / main amd64 libreadline7 amd64 7.0-3 [124 kt]

Hanki: 3 http://archive.ubuntu.com/ubuntu bionic-updates / main amd64 libsqlite3-0 amd64 3.22.0-1ubuntu0.1 [497 kt]

Hanki: 4 http://archive.ubuntu.com/ubuntu bionic-updates / main amd64 libssl1.1 amd64 1.1.1-1ubuntu2.1 ~ 18.04.4 [1300 kt]

debconf: viivästyttää paketin määritystä, koska apt-utils ei ole asennettu

Haettu 5187 kB 12 sekunnissa (416 kB / s)

Aiemmin valitsematta jätetyn paketin readline-common valitseminen.

(Lukee tietokantaa … 4040 tiedostoa ja hakemistoa asennettu.)

Valmistautuminen purkamiseen … / 00-readline-common_7.0-3_all.deb …

Puretaan readline-common (7.0-3) …

Aiemmin valitsematta jääneen paketin libreadline7 valitseminen: amd64.

Valmistautuminen purkamiseen … / 01-libreadline7_7.0-3_amd64.deb …

Aiemmin valitsematta jääneen paketin dirmngr valitseminen.

Libnpth0: n asettaminen: amd64 (1.5-3) …

Libksba8: n asettaminen: amd64 (1.3.5-2) …

Gnupg-l10n (2.2.4-1ubuntu1.2) asettaminen …

Käsitellään liipaisimia libc-bin (2.27-3ubuntu1) …

Välisäiliön poistaminen de3706328761

—> a32533894ed1

Vaihe 3/10: RUN apt-key adv – avainserver hkp: //keyserver.ubuntu.com: 80 –recv 7F0CEB10

—> Juokseminen 69c4dba38983

Varoitus: apt-key-lähtöä ei tule jäsentää (stdout ei ole pääte)

Suoritetaan: /tmp/apt-key-gpghome.MuT5BDWwKZ/gpg.1.sh –näppäinpalvelimen hkp: //keyserver.ubuntu.com: 80 –recv 7F0CEB10

gpg: avain 5F8F93707F0CEB10: julkinen avain "Täysin laillinen allekirjoitusavain <[Email protected]>" tuotu

gpg: avain 9ECBEC467F0CEB10: 1 allekirjoitusta ei tarkistettu puuttuvan avaimen takia

gpg: avain 9ECBEC467F0CEB10: julkinen avain "Richard Kreuter <[Email protected]>" tuotu

gpg: Käsitelty kokonaismäärä: 2

gpg: tuotu: 2

Välisäiliön 69c4dba38983 poistaminen

—> cffbe06c1b50

Vaihe 4/10: RUN kaiku ‘deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen’ > tee /etc/apt/sources.list.d/mongodb.list

—> Käynnissä 40630fd7b0a9

Välisäiliön 40630fd7b0a9 poistaminen

—> a1bd9d8d7e51

Vaihe 5/10: RUN apt-get-päivitys

—> Käynnissä 750717d9c0ea

Osuma: 1 http://archive.ubuntu.com/ubuntu bioninen InRelease

Osuma: 2 http://archive.ubuntu.com/ubuntu bionic-updates InRelease

Osuma: 3 http://security.ubuntu.com/ubuntu bionic-security InRelease

Osuma: 4 http://archive.ubuntu.com/ubuntu bionic-backports InRelease

Pakettiluetteloiden lukeminen…

Välisäiliön poistaminen 750717d9c0ea

—> 397d6501db58

Vaihe 6/10: RUN apt-get install -y mongodb

—> Käynnissä 88609c005e73

Pakettiluetteloiden lukeminen…

Riippuvuuspuun rakentaminen…

Tilatietojen lukeminen…

Seuraavat UUDET paketit asennetaan:

libboost-filesystem1.65.1 libboost-iostreams1.65.1

libboost-program-options1.65.1 libboost-system1.65.1 libgoogle-perftools4

libpcap0.8 libpcrecpp0v5 libsnappy1v5 libstemmer0d libtcmalloc-minimal4

libunwind8 libyaml-cpp0.5v5 mongo-tools mongodb mongodb-asiakkaat

mongodb-server mongodb-server-core

0 päivitetty, 17 vasta asennettu, 0 poistettu ja 0 ei päivitetty.

Tarve saada 53,7 Mt arkistoja.

Tämän toimenpiteen jälkeen käytetään 218 Mt lisä levytilaa.

Hanki: 1 http://archive.ubuntu.com/ubuntu bionic-updates / universe amd64 mongodb-asiakkaat amd64 1: 3.6.3-0ubuntu1.1 [20.2 MB]

Hanki: 2 http://archive.ubuntu.com/ubuntu bionic-päivitykset / universe amd64 mongodb-server-core amd64 1: 3.6.3-0ubuntu1.1 [20.3 MB]

Hanki: 3 http://archive.ubuntu.com/ubuntu bionic-updates / universe amd64 mongodb-palvelin kaikki 1: 3.6.3-0ubuntu1.1 [12.6 kB]

Hanki: 4 http://archive.ubuntu.com/ubuntu bionic-updates / universe amd64 mongodb amd64 1: 3.6.3-0ubuntu1.1 [9968 B]

Haettu 53,7 Mt 10 sekunnissa (5485 kB / s)

Aiemmin valitsematta jääneen paketin valitseminen libpcap0.8: amd64.

(Lukee tietokantaa … 4390 tiedostoa ja hakemistoa asennettu.)

Aiemmin valitsematta jätettyjen mongodb-asiakkaiden valitseminen.

Valmistautuminen purkamiseen … / 13-mongodb-asiakkaat_1% 3a3.6.3-0ubuntu1.1_amd64.deb …

Mongodb-asiakkaiden purkaminen pakkauksesta (1: 3.6.3-0ubuntu1.1) …

Aiemmin valitsematta jääneen paketin valitseminen mongodb-server-core.

Valmistautuminen purkamiseen … / 14-mongodb-server-core_1% 3a3.6.3-0ubuntu1.1_amd64.deb …

Poista mongodb-server-core (1: 3.6.3-0ubuntu1.1) pakkauksesta …

Aiemmin valitsematta jääneen paketin mongodb-palvelimen valitseminen.

Valmistautuminen purkamiseen … / 15-mongodb-server_1% 3a3.6.3-0ubuntu1.1_all.deb …

Mongodb-palvelimen purkaminen pakkauksesta (1: 3.6.3-0ubuntu1.1) …

Aiemmin valitsematta jätetyn paketin valitseminen.

Valmistautuminen purkamiseen … / 16-mongodb_1% 3a3.6.3-0ubuntu1.1_amd64.deb …

Mongodb: n purkaminen pakkauksesta (1: 3.6.3-0ubuntu1.1) …

Mongodb-server-core-asetusten määrittäminen (1: 3.6.3-0ubuntu1.1) …

Mongo-työkalujen asentaminen (3.6.3-0ubuntu1) …

Mongodb-asiakkaiden asettaminen (1: 3.6.3-0ubuntu1.1) …

Mongodb-palvelimen asettaminen (1: 3.6.3-0ubuntu1.1) …

invoke-rc.d: ei voitu määrittää nykyistä ajotasoa

invoke-rc.d: policy-rc.d kielsi aloituksen suorittamisen.

Mongodb: n asettaminen (1: 3.6.3-0ubuntu1.1) …

Käsitellään liipaisimia libc-bin (2.27-3ubuntu1) …

Välisäiliön 88609c005e73 poistaminen

—> d9c072cb1f84

Vaihe 7/10: RUN mkdir -p / data / db

—> Käynnissä f817778f69ab

Välisäiliön f817778f69ab poistaminen

—> a3fbdb3def5c

Vaihe 8/10: ALTISTUMINEN 27017

—> Juokseminen 8d070e2a1e07

Välisäiliön 8d070e2a1e07 poistaminen

—> f770776a538c

Vaihe 9/10: CMD ["–portti 27017"]

—> Käynnissä ab612410df77

Välisäiliön poistaminen ab612410df77

—> e5830b80934f

Vaihe 10/10: ENTRYPOINT usr / bin / mongod

—> Käynnissä 95f574727aab

Välisäiliön 95f574727aab poistaminen

—> 095d17727ca0

Rakennettu onnistuneesti 095d17727ca0

Tunnistettu onnistuneesti geekflare_mongodb: viimeisin

Tarkistetaan, onko telakoitsijakuva luotu nimellä geekflare_mongodb.

[Email protected]: ~ $ telakkakuvia

KÄYTTÖTASOLTIMERKIN KUVATunnus luotiin

geekflare_mongodb viimeisin 095d17727ca0 3 minuuttia sitten 325MB

ubuntu viimeisin 3556258649b2 4 päivää sitten 64,2MB

mean_express viimeisin 35dcb3df9806 6 päivää sitten 923MB

mean_angular viimeisin 9f8d61db600c 6 päivää sitten 1,29 Gt

Suorita telakointikuva geekflare_mongodb kontin mongo_container sisällä.

[Email protected]: ~ $ docker run –name mongo_container -i -t geekflare_mongodb

2019-07-27T19: 38: 23.734 + 0000 I CONTROL [initandlisten] MongoDB käynnistys: pid = 6 portti = 27017 dbpath = / data / db 64-bittinen isäntä = b0095c1e5536

2019-07-27T19: 38: 23.735 + 0000 I CONTROL [initandlisten] db-version v3.6.3

2019-07-27T19: 38: 23.735 + 0000 I CONTROL [initandlisten] git -versio: 9586e557d54ef70f9ca4b43c26892cd55257e1a5

2019-07-27T19: 38: 23.736 + 0000 I CONTROL [initandlisten] OpenSSL-versio: OpenSSL 1.1.1 11. syyskuuta 2018

2019-07-27T19: 38: 23.739 + 0000 I CONTROL [initandlisten] -jakaja: tcmalloc

2019-07-27T19: 38: 23.739 + 0000 I CONTROL [initandlisten] -moduulit: ei mitään

2019-07-27T19: 38: 23.739 + 0000 I CONTROL [initandlisten] rakennusympäristö:

2019-07-27T19: 38: 23.739 + 0000 I CONTROL [initandlisten] distarch: x86_64

2019-07-27T19: 38: 23.739 + 0000 I CONTROL [initandlisten] target_arch: x86_64

2019-07-27T19: 38: 23.739 + 0000 I CONTROL [initandlisten] vaihtoehdot: {}

2019-07-27T19: 38: 23.745 + 0000 I STORAGE [initandlisten] wiredtiger_open config: luo, cache_size = 2038M, session_max = 20000, evicting = (threads_min = 4, threads_max = 4), config_base = false, Statistics = (nopea) log = (käytössä = true, arkisto = true, polku = Journal, kompressori = reipas), file_manager = (close_idle_time = 100000), statistics_log = (odotus = 0), monisanainen = (recovery_progress),

2019-07-27T19: 38: 24.733 + 0000 I CONTROL [initandlisten]

2019-07-27T19: 38: 24.734 + 0000 I CONTROL [initandlisten] ** VAROITUS: Tietokannan käyttöoikeudet eivät ole käytössä.

2019-07-27T19: 38: 24.735 + 0000 I CONTROL [initandlisten] ** Luku- ja kirjoitusoikeudet tietoihin ja kokoonpanoon ovat rajoittamattomat.

2019-07-27T19: 38: 24.736 + 0000 I CONTROL [initandlisten] ** VAROITUS: Käytät tätä prosessia pääkäyttäjänä, jota ei suositella.

2019-07-27T19: 38: 24.736 + 0000 I CONTROL [initandlisten]

2019-07-27T19: 38: 24.736 + 0000 I CONTROL [initandlisten] ** VAROITUS: Tämä palvelin on sidottu localhostiin.

2019-07-27T19: 38: 24.737 + 0000 I CONTROL [initandlisten] ** Etäjärjestelmät eivät pysty muodostamaan yhteyttä tähän palvelimeen.

2019-07-27T19: 38: 24.737 + 0000 I CONTROL [initandlisten] ** Käynnistä palvelin painikkeella –bind_ip määrittääksesi mikä IP

2019-07-27T19: 38: 24.737 + 0000 I CONTROL [initandlisten] ** -osoitteet, joiden pitäisi palvella vastauksia osoitteesta –bind_ip_all_all tai

2019-07-27T19: 38: 24.737 + 0000 I CONTROL [initandlisten] ** sitoutuu kaikkiin rajapintoihin. Jos tämä toiminta halutaan, käynnistä

2019-07-27T19: 38: 24.738 + 0000 I CONTROL [initandlisten] ** -palvelin, jossa –bind_ip 127.0.0.1 poistaa tämän varoituksen käytöstä.

2019-07-27T19: 38: 24.738 + 0000 I CONTROL [initandlisten]

2019-07-27T19: 38: 24.739 + 0000 I STORAGE [initandlisten] createCollection: admin.system.version mukana toimitetulla UUID: llä: 4b8b509d-633a-46c1-a302-cb8c82b0d5d3

2019-07-27T19: 38: 24.788 + 0000 I COMMAND [initandlisten] asetusominaisuusCompatibilityVersion 3.6

2019-07-27T19: 38: 24.818 + 0000 I STORAGE [initandlisten] createCollection: local.startup_log luodulla UUID: lla: 6c1c0366-4b1b-4b92-9fcd-d18acc126072

2019-07-27T19: 38: 24.862 + 0000 I FTDC [initandlisten] Kokoaikaisen diagnoositietojen talteenoton aloittaminen hakemistolla ‘/data/db/diagnostic.data’

2019-07-27T19: 38: 24.866 + 0000 I NETWORK [initandlisten] odottaa yhteyksiä porttiin 27017

Avaa uusi pääte ja tarkista, onko mongo_container käynnissä.

[Email protected]: ~ $ telakka ps

CONTAINER ID IMAGE COMMAND LUONNE TILANSAAMATTEN NIMET

b0095c1e5536 geekflare_mongodb   "/ bin / sh -c usr / bin /…"   35 sekuntia sitten Yli 33 sekuntia 27017 / tcp mongo_container

Kuten näette, geekflare_mongodb-kuvasta luotu säilö on käynnissä.

Toivon, että tämä antaa sinulle kuvan docker-tiedostosta ja sen eduista. Voit myös tutustua tähän dokumentaatioon Dokkeritiedoston parhaat käytännöt oppia lisää.

Tunnisteet:

  • Satamatyöläinen

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Комментариев нет, будьте первым кто его оставит

    Комментарии закрыты.

    Adblock
    detector