Mis on Dockerfile ja kuidas luua Dockeri pilti?

Dokkiprojektidega töötades ei vasta olemasolevad dokipildid enamasti teie nõuetele.


Siin tulebki pilti Dockerfile; see aitab teil luua kohandatud Dockeri pilte. Seetõttu on Dockerfile’i tundmine hädavajalik.

Mis on Dockerfile?

See on lihtne tekstifail käskude või käskude komplektiga. Neid käske / juhiseid täidetakse järjestikku aluspildil toimingute tegemiseks, et luua uus doki pilt.

kommentaarid ja käsud + argumendid on kahte tüüpi peamised reaplokid Dockerfile’i süntaksis

Kommenteerib süntaksit

# Kommenteerimiseks kasutatud reaplokid

käsuargument argument1 …..

Käsud + argumendid Näide

# Kommenteerimiseks kasutatud reaplokid

käsuargument argument1 …..

Allpool leiate, kuidas teie töövoog välja näeb.

  • Looge dokkerifail ja mainige juhiseid oma doki pildi loomiseks
  • Käivitage doki ehitamise käsk, mis loob doki pildi
  • Nüüd on doki pilt kasutamiseks valmis. Kasutage konteinerite loomiseks doki käivitamise käsku

dockerfaili töövoog

Põhikäsud

FROM – Määratleb põhipildi, mida kasutada ja ehitamisprotsessi alustamiseks.

RUN – Kujutise käivitamiseks on vaja käsku ja selle argumente.

CMD – Sarnane funktsioon nagu käsul RUN, kuid see käivitatakse alles pärast konteineri realiseerimist.

SISENEMISPUNKT – See sihib konteineri loomisel teie vaikerakendust.

LISAMA – See kopeerib failid lähtest sihtkohta (konteineri sees).

ENV – Määrab keskkonnamuutujad.

Kuidas luua Dockeri pilti Dockerfile abil?

Esiteks loogem Dockerfile.

[e-posti aadress on kaitstud]: ~ $ gedit Dockerfile

Pange sinna allpool olevad käsud / juhised ja salvestage see.

# Seadke aluspildiks Ubuntu
Ubuntust

# Uuendage hoidlate allikate loetelu ja installige gnupg2
RUN apt-get värskendus && apt-get install -y gnupg2

# Lisage paketi kinnitusvõti
RUN apt-key adv – võtmeserveri hkp: //keyserver.ubuntu.com: 80 –recv 7F0CEB10

# Lisage MongoDB hoidlate allikate loendisse
RUN kaja ‘deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen’ > tee /etc/apt/sources.list.d/mongodb.list

# Uuendage hoidlate allikate loetelu
RUN apt-get värskendus

# Installige MongoDB pakett (.deb)
RUN apt-get install -y mongodb

# Looge vaikeandmekataloog
RUN mkdir -p / data / db

# Paljastage vaikesadam
KOKKUPUUDE 27017

# Vaikeport sisenemispunkti täitmiseks (MongoDB)
CMD ["–port 27017"]

# Seadke konteineri vaikekäsklus
ENTRYPOINT usr / bin / mongodb

Selles Dockerfile’is on baaskujutiseks seatud ubuntu. Seejärel mainitakse MongoDB installimiseks vajalikke käske ja argumente. Port 27017 puutub kokku MongoDB-ga vaikekonteineri käsuga usr / bin / mongodb

Järgmisena käivitan selle doki pildi loomiseks.

Dockerfaili käitamine

Järgmine käsk loob doki pildi pärast geekflare_mongodb pärast edukat täitmist.

[e-posti aadress on kaitstud]: ~ $ doki ehitamine -t geekflare_mongodb .

Ehitamise konteksti saatmine Dockeri deemonile 667,2 MB

Samm 1/9: Ubuntust

Viimane: raamatukogust / ubuntu tõmbamine

7413c47ba209: tõmmake valmis

0fe7e7cbb2e8: tõmmake lõpule

1d425c982345: tõmmake valmis

344da5c95cec: tõmmake lõpuni

Digest: sha256: c303f19cfe9ee92badbbbd7567bc1ca47789f79303ddcef56f77687d4744cd7a

Olek: alla laaditud ubuntu uuem pilt: viimane

—> 3556258649b2

2. samm 10: käivitage värskendus apt-get && apt-get install -y gnupg2

—> Jookseb numbril de3706328761

Hankige: 1 http://security.ubuntu.com/ubuntu bioonilise turbega InRelease [88,7 kB]

Hankige: 2 http://archive.ubuntu.com/ubuntu bioonilist InRelease [242 kB]

Laaditud 16,9 MB 38 sekundis (445 kB / s)

Pakkide loendite lugemine…

Pakkide loendite lugemine…

Ehitise sõltuvuspuu…

Olekuteabe lugemine…

Peate hankima 5187 kB arhiivi.

Pärast seda toimingut kasutatakse täiendavat kettaruumi 15,8 MB.

Hankige: 1 http://archive.ubuntu.com/ubuntu biooniline / peamine amd64 readline-common kõik 7,0-3 [52,9 kB]

Hankige: 2 http://archive.ubuntu.com/ubuntu biooniline / peamine amd64 libreadline7 amd64 7.0-3 [124 kB]

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

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

debconf: paketi konfigureerimise edasilükkamine, kuna apt-utils pole installitud

Toodetud 5187 kB 12 sekundi jooksul (416 kB / s)

Varem valimata paketi readline-common valimine.

(Andmebaasi lugemine … 4040 faili ja kataloogi on praegu installitud.)

Ettevalmistus pakkimiseks … / 00-readline-common_7.0-3_all.deb …

Laadige lahti tavaline readline (7.0-3) …

Varem valimata paketi libreadline7 valimine: amd64.

Ettevalmistus lahtipakkimiseks … / 01-libreadline7_7.0-3_amd64.deb …

Varem valimata paketi dirmngr valimine.

Libnpth0 seadistamine: amd64 (1.5-3) …

Libksba8 seadistamine: amd64 (1.3.5-2) …

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

Libc-bin (2.27-3ubuntu1) päästikute töötlemine …

Vahemahuti de3706328761 eemaldamine

—> a32533894ed1

Samm 3/10: RUN apt-key adv – võtmeserveri hkp: //keyserver.ubuntu.com: 80 –recv 7F0CEB10

—> Jookseb numbril 69c4dba38983

Hoiatus: apt-key väljundit ei tohiks parsida (stdout pole terminal)

Käivitamine: /tmp/apt-key-gpghome.MuT5BDWwKZ/gpg.1.sh – võtmeserveri hkp: //keyserver.ubuntu.com: 80 –recv 7F0CEB10

gpg: võti 5F8F93707F0CEB10: avalik võti "Täiesti seaduslik allkirjastamisvõti <[e-posti aadress on kaitstud]>" imporditud

gpg: võti 9ECBEC467F0CEB10: 1 allkirja pole kontrollitud puuduva võtme tõttu

gpg: võti 9ECBEC467F0CEB10: avalik võti "Richard Kreuter <[e-posti aadress on kaitstud]>" imporditud

gpg: töödeldud koguarv: 2

gpg: imporditud: 2

Vahemahuti 69c4dba38983 eemaldamine

—> cffbe06c1b50

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

—> Jooksvad 40630fd7b0a9

Vahemahuti 40630fd7b0a9 eemaldamine

—> a1bd9d8d7e51

5. samm 10: käivitage värskendus apt-get

—> Jooksvad 750717d9c0ea

Tulemus: 1 http://archive.ubuntu.com/ubuntu biooniline InRelease

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

Tulemus: 3 http://security.ubuntu.com/ubuntu bioonilise turbega InRelease

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

Pakkide loendite lugemine…

Vahemahuti 750717d9c0ea eemaldamine

—> 397d6501db58

6. samm 10: Käivitage apt-get install -y mongodb

—> Jookseb numbriga 88609c005e73

Pakkide loendite lugemine…

Ehitise sõltuvuspuu…

Olekuteabe lugemine…

Installitakse järgmised uued paketid:

libboost-failisüsteem1.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-kliendid

mongodb-server mongodb-server-core

0 täiendatud, 17 värskelt installitud, 0 eemaldamiseks ja 0 pole uuendatud.

Peate hankima 53,7 MB arhiive.

Pärast seda toimingut kasutatakse 218 MB täiendavat kettaruumi.

Hankige: 1 http://archive.ubuntu.com/ubuntu bioonilised värskendused / universumi amd64 mongodb-kliendid amd64 1: 3.6.3-0ubuntu1.1 [20,2 MB]

Hankige: 2 http://archive.ubuntu.com/ubuntu bioonilisi värskendusi / universe amd64 mongodb-server-core amd64 1: 3.6.3-0ubuntu1.1 [20.3 MB]

Hankige: 3 http://archive.ubuntu.com/ubuntu bioonilisi värskendusi / universumi amd64 mongodb-server kõik 1: 3.6.3-0ubuntu1.1 [12,6 kB]

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

Toodetud 53,7 MB 10 sekundiga (5485 kB / s)

Varem valimata paketi libpcap0.8: amd64 valimine.

(Andmekogu lugemine … praegu installitud 4390 faili ja kataloogid.)

Varem valimata pakettide mongodb-klientide valimine.

Ettevalmistus pakkimiseks … / 13-mongodb-kliendid_1% 3a3.6.3-0ubuntu1.1_amd64.deb …

Mongodb-klientide lahtipakkimine (1: 3.6.3-0ubuntu1.1) …

Varem valimata paketi mongodb-server-core valimine.

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

Mongodb-server-core lahti pakkimine (1: 3.6.3-0ubuntu1.1) …

Varem valimata paketi mongodb-server valimine.

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

Mongodb-serveri lahtipakkimine (1: 3.6.3-0ubuntu1.1) …

Varem valimata paketi mongodb valimine.

Ettevalmistus pakkimiseks … / 16-mongodb_1% 3a3.6.3-0ubuntu1.1_amd64.deb …

Mongodbi lahtipakkimine (1: 3.6.3-0ubuntu1.1) …

Mongodb-server-core seadistamine (1: 3.6.3-0ubuntu1.1) …

Mongotööriistade seadistamine (3.6.3-0ubuntu1) …

Mongodb-klientide seadistamine (1: 3.6.3-0ubuntu1.1) …

Mongodb-serveri seadistamine (1: 3.6.3-0ubuntu1.1) …

invoke-rc.d: ei saanud praegust käitustaset kindlaks teha

invoke-rc.d: policy-rc.d keelas alguse täitmise.

Mongodbi seadistamine (1: 3.6.3-0ubuntu1.1) …

Libc-bin (2.27-3ubuntu1) päästikute töötlemine …

Vahemahuti 88609c005e73 eemaldamine

—> d9c072cb1f84

Samm 7/10: KÄIVIGE mkdir -p / data / db

—> Töötab seadmes f817778f69ab

Vahemahuti f817778f69ab eemaldamine

—> a3fbdb3def5c

Samm 8/10: KOKKUPUUDE 27017

—> Jookseb numbril 8d070e2a1e07

Vahemahuti 8d070e2a1e07 eemaldamine

—> f770776a538c

Samm 9/10: CMD ["–port 27017"]

—> Töötab ab612410df77

Vahemahuti eemaldamine ab612410df77

—> e5830b80934f

Samm 10/10: ENTRYPOINT usr / bin / mongod

—> Jookseb numbriga 95f574727aab

Vahemahuti 95f574727aab eemaldamine

—> 095d17727ca0

095d17727ca0 ehitamine õnnestus

Geekflare_mongodb: edukalt sildistatud: uusim

Kontrolligem, kas doki pilt on loodud nimega geekflare_mongodb.

[e-posti aadress on kaitstud]: ~ $ doki pilte

REPOSITORY PILDI PILDI ID LOODUD SUURUS

geekflare_mongodb hiljemalt 095d17727ca0 3 minutit tagasi 325 MB

ubuntu hiljemalt 3556258649b2 4 päeva tagasi 64,2 MB

mean_express hiljemalt 35dcb3df9806 6 päeva tagasi 923 MB

mean_angular Viimane 9f8d61db600c 6 päeva tagasi 1,29 GB

Käivitage doki pilt geekflare_mongodb konteineris mongo_container.

[e-posti aadress on kaitstud]: ~ $ doki käitamine – nimi mongo_container -i -t geekflare_mongodb

2019-07-27T19: 38: 23.734 + 0000 I KONTROLL [initandlisten] MongoDB algus: pid = 6 port = 27017 dbpath = / data / db 64-bitine host = b0095c1e5536

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

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

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

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

2019-07-27T19: 38: 23.739 + 0000 I CONTROL [initandlisten] moodulid: pole

2019-07-27T19: 38: 23.739 + 0000 I CONTROL [initandlisten] ehitamise keskkond:

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] valikud: {}

2019-07-27T19: 38: 23.745 + 0000 I STORAGE [initandlisten] wiredtiger_open config: looge, cache_size = 2038M, session_max = 20000, eviktsioon = (threads_min = 4, threads_max = 4), config_base = false, statistika = (kiire) , log = (lubatud = tõene, arhiiv = tõsi, tee = ajakiri, kompressor = käre), failihaldur = (sulgeda_aja_aeg = 100000), statistika_logi = (ootama = 0), verbose = (taastamise_protsess),

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

2019-07-27T19: 38: 24.734 + 0000 I KONTROLL [initandlisten] ** HOIATUS: Juurdepääsu juhtimine pole andmebaasi jaoks lubatud.

2019-07-27T19: 38: 24.735 + 0000 I CONTROL [initandlisten] ** Lugemis- ja kirjutamisjuurdepääs andmetele ja konfiguratsioonile on piiramatu.

2019-07-27T19: 38: 24.736 + 0000 I CONTROL [initandlisten] ** HOIATUS: Te kasutate seda protsessi juurkasutajana, mida ei soovitata.

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

2019-07-27T19: 38: 24.736 + 0000 I CONTROL [initandlisten] ** HOIATUS: see server on ühendatud localhostiga.

2019-07-27T19: 38: 24.737 + 0000 I CONTROL [initandlisten] ** Kaugsüsteemid ei saa selle serveriga ühendust.

2019-07-27T19: 38: 24.737 + 0000 I CONTROL [initandlisten] ** Käivitage server nupuga –bind_ip, et täpsustada, milline IP

2019-07-27T19: 38: 24.737 + 0000 I CONTROL [initandlisten] ** aadressid peaksid vastama aadressidele või koos –bind_ip_all aadressiga

2019-07-27T19: 38: 24.737 + 0000 I CONTROL [initandlisten] ** seondub kõigi liidestega. Kui sellist käitumist soovitakse, käivitage

2019-07-27T19: 38: 24.738 + 0000 I CONTROL [initandlisten] ** serveri abil –bind_ip 127.0.0.1 selle hoiatuse keelamiseks.

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

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

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

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

2019-07-27T19: 38: 24.862 + 0000 I FTDC [initandlisten] Täistööajaga diagnostiliste andmete kogumise algatamine kataloogiga ‘/data/db/diagnostic.data’

2019-07-27T19: 38: 24.866 + 0000 I NETWORK [initandlisten] ootab ühendusi pordil 27017

Avage uus terminal ja kontrollige, kas mongo_container töötab.

[e-posti aadress on kaitstud]: ~ $ dokk ps

KONTEINERI ID PILDIKOMAND LOODUD STAATUSSAADMETE NIMED

b0095c1e5536 geekflare_mongodb   "/ bin / sh -c usr / bin /…"   35 sekundit tagasi Kuni 33 sekundit 27017 / tcp mongo_container

Nagu näete, on pildist geekflare_mongodb loodud konteiner üles töötatud.

Loodetavasti annab see teile idee dockerfaili ja selle eeliste kohta. Samuti saate seda dokumentatsiooni vaadata saidil Dokkerifaili parimad tavad et rohkem teada saada.

Sildid:

  • Dokk

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map