Hvað er Dockerfile og hvernig á að búa til Docker mynd?

Þegar þú vinnur að skipakvíverkefnum, mest af þeim tíma, uppfylla núverandi myndir af tengikví ekki kröfum þínum.


Þetta er þar sem Dockerfile kemur inn í myndina; það mun hjálpa þér að búa til sérsniðnar Docker myndir. Þess vegna er mikilvægt að vita um Dockerfile.

Hvað er Dockerfile?

Þetta er einföld textaskrá með sett af skipun eða leiðbeiningum. Þessar skipanir / leiðbeiningar eru keyrðar í röð til að framkvæma aðgerðir á grunnmyndinni til að búa til nýja tengikvíarmynd.

athugasemdir og skipanir + rök eru tvenns konar aðallínubálkar í setningafræði Dockerfile

Athugasemdir setningafræði

# Línubálkar notaðir til að gera athugasemdir

stjórn rifrildi1 …..

Skipanir + rök dæmi

# Línubálkar notaðir til að gera athugasemdir

stjórn rifrildi1 …..

Hér að neðan er hvernig flæðið þitt mun líta út.

  • Búðu til Dockerfile og nefndu leiðbeiningarnar til að búa til tengikvímynd þína
  • Keyra skipan um tengikví sem mun byggja myndakjallara
  • Nú er myndin af tengikvínni tilbúin til notkunar, notaðu skipunina um skipan til að búa til gáma

verkflæði dockerfile

Grunnskipanir

FRÁ – Skilgreinir grunnmyndina sem á að nota og hefja smíðaferlið.

Hlaupa – Það þarf skipunina og rökin til að keyra hana frá myndinni.

CMD – Svipuð aðgerð og RUN skipun, en hún verður keyrð aðeins eftir að gámurinn er kominn í gang.

FYRIRTÆKIÐ – Það miðar við sjálfgefna forritið þitt á myndinni þegar ílátið er búið til.

BÆTA VIÐ – Það afritar skrárnar frá upptökum að ákvörðunarstað (inni í gámnum).

ENV – Stillir umhverfisbreytur.

Hvernig á að búa til Docker mynd með Dockerfile?

Í fyrsta lagi skulum við búa til Dockerfile.

[varið með tölvupósti]: ~ $ gedit Dockerfile

Settu eftirfarandi skipanir / leiðbeiningar í það og vistaðu.

# Settu grunnmyndina á Ubuntu
FRÁ ubuntu

# Uppfærðu heimildalistann fyrir geymslu og settu upp gnupg2
RUN apt-get update && apt-get install -y gnupg2

# Bættu við staðfestingarlykil pakkans
RUN apt-key adv –keyserver hkp: //keyserver.ubuntu.com: 80 –recv 7F0CEB10

# Bættu MongoDB við heimildalista geymslu
RUN echo ‘deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen’ > teig /etc/apt/sources.list.d/mongodb.list

# Uppfærðu heimildalista geymslu
RUN apt-get update

# Settu upp MongoDB pakka (.deb)
RUN apt-get install -y mongodb

# Búðu til sjálfgefna gagnaskrána
RUN mkdir -p / gögn / db

# Sýna sjálfgefna höfn
ÚTLIT 27017

# Sjálfgefin höfn til að framkvæma aðgangsstað (MongoDB)
CMD ["–höfn 27017"]

# Setjið sjálfgefna gáma skipun
ENTRYPOINT usr / bin / mongodb

Í þessu Dockerfile er ubuntu stillt sem grunnmynd. Þá eru nauðsynlegar skipanir og rök nefnd til að setja upp MongoDB. Höfn 27017 er útsett fyrir MongoDB með sjálfgefna gámaskipun sem usr / bin / mongodb

Næst mun ég keyra það til að búa til tengikvíarmynd.

Að keyra Dockerfile

Eftirfarandi skipun mun búa til skipakvísmynd sem kallast geekflare_mongodb eftir árangursríka framkvæmd.

[varið með tölvupósti]: ~ $ skipakví byggja -t geekflare_mongodb .

Sendir byggja samhengi til Docker púkans 667,2MB

Skref 1/9: FRÁ ubuntu

nýjasta: Að draga frá bókasafni / ubuntu

7413c47ba209: Dragðu lokið

0fe7e7cbb2e8: Pull lokið

1d425c982345: Dragðu lokið

344da5c95cec: Dragðu út heill

Melting: sha256: c303f19cfe9ee92badbbbd7567bc1ca47789f79303ddcef56f77687d4744cd7a

Staða: Sótt nýrri mynd fyrir Ubuntu: nýjasta

—> 3556258649b2

Skref 2/10: RUN apt-get update && apt-get install -y gnupg2

—> Hlaupandi í de3706328761

Fáðu: 1 http://security.ubuntu.com/ubuntu bionic-security InRelease [88,7 kB]

Fáðu: 2 http://archive.ubuntu.com/ubuntu bionic InRelease [242 kB]

Sótt 16,9 MB á 38s (445 kB / s)

Lestrarpakkalistar…

Lestrarpakkalistar…

Byggja ósjálfstré…

Lestur upplýsingar ríkisins…

Þarftu að fá 5187 kB skjalasöfn.

Eftir þessa aðgerð verður 15,8 MB meira pláss notað.

Fáðu: 1 http://archive.ubuntu.com/ubuntu bionic / main amd64 readline-common all 7.0-3 [52.9 kB]

Fáðu: 2 http://archive.ubuntu.com/ubuntu bionic / main amd64 libreadline7 amd64 7.0-3 [124 kB]

Fáðu: 3 http://archive.ubuntu.com/ubuntu bionic-updates / aðal amd64 libsqlite3-0 amd64 3.22.0-1ubuntu0.1 [497 kB]

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

debconf: seinka uppsetningu á pakka þar sem apt-utils er ekki sett upp

Sótt 5187 kB í 12s (416 kB / s)

Að velja áður ósvalinn readline-algengan.

(Lestur gagnagrunns … 4040 skrár og möppur uppsettar sem stendur.)

Undirbúningur fyrir að taka upp … / 00-readline-common_7.0-3_all.deb …

Algengt er að readline-sameiginlegt (7.0-3) …

Að velja áður óvalinn pakka libreadline7: amd64.

Undirbúningur fyrir að taka upp … / 01-libreadline7_7.0-3_amd64.deb …

Að velja áður óvalinn pakka dirmngr.

Setja upp libnpth0: amd64 (1.5-3) …

Setja upp libksba8: amd64 (1.3.5-2) …

Setja upp gnupg-l10n (2.2.4-1ubuntu1.2) …

Að vinna úr kallarum fyrir libc-bin (2.27-3ubuntu1) …

Fjarlægir millistig ílát de3706328761

—> a32533894ed1

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

—> Hlaupandi í 69c4dba38983

Viðvörun: apt-key framleiðsla ætti ekki að vera þáttur (stdout er ekki flugstöð)

Framkvæmd: /tmp/apt-key-gpghome.MuT5BDWwKZ/gpg.1.sh –keyserver hkp: //keyserver.ubuntu.com: 80 –recv 7F0CEB10

gpg: lykill 5F8F93707F0CEB10: opinber lykill "Alveg löglegur undirritunarlykill <[varið með tölvupósti]>" innflutt

gpg: lykill 9ECBEC467F0CEB10: 1 undirskrift ekki merkt vegna vantar lykil

gpg: lykill 9ECBEC467F0CEB10: opinber lykill "Richard Kreuter <[varið með tölvupósti]>" innflutt

gpg: Heildarfjöldi uninn: 2

gpg: flutt: 2

Fjarlægir milligám ílát 69c4dba38983

—> cffbe06c1b50

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

—> Hlaupandi í 40630fd7b0a9

Fjarlægir milligám ílát 40630fd7b0a9

—> a1bd9d8d7e51

Skref 5/10: RUN apt-get update

—> Hlaupandi í 750717d9c0ea

Högg: 1 http://archive.ubuntu.com/ubuntu bionic InRelease

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

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

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

Lestrarpakkalistar…

Fjarlægir milligám 750717d9c0ea

—> 397d6501db58

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

—> Hlaupandi í 88609c005e73

Lestrarpakkalistar…

Byggja ósjálfstré…

Lestur upplýsingar ríkisins…

Eftirfarandi nýir pakkar verða settir upp:

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-verkfæri mongodb mongodb-viðskiptavini

mongodb-server mongodb-server-core

0 uppfærð, 17 nýuppsett, 0 til að fjarlægja og 0 ekki uppfærð.

Þarftu að fá 53,7 MB skjalasöfn.

Eftir þessa aðgerð verður 218 MB af viðbótarplássi notað.

Fáðu: 1 http://archive.ubuntu.com/ubuntu bionic-updates / alheimsins amd64 mongodb-viðskiptavini amd64 1: 3.6.3-0ubuntu1.1 [20.2 MB]

Fáðu: 2 http://archive.ubuntu.com/ubuntu bionic-updates / alheimsins amd64 mongodb-server-core amd64 1: 3.6.3-0ubuntu1.1 [20.3 MB]

Fáðu: 3 http://archive.ubuntu.com/ubuntu bionic-updates / alheimsins amd64 mongodb-server allur 1: 3.6.3-0ubuntu1.1 [12.6 kB]

Fáðu: 4 http://archive.ubuntu.com/ubuntu bionic-updates / alheimsins amd64 mongodb amd64 1: 3.6.3-0ubuntu1.1 [9968 B]

Sótt 53,7 MB í 10s (5485 kB / s)

Að velja áður óvalinn pakka libpcap0.8: amd64.

(Lestur gagnagrunns … 4390 skrár og skráarsöfn sett upp sem stendur.)

Að velja mongodb-viðskiptavini sem áður voru ekki valdir.

Undirbúningur fyrir að taka upp … / 13-mongodb-clients_1% 3a3.6.3-0ubuntu1.1_amd64.deb …

Upptaka mongodb-viðskiptavini (1: 3.6.3-0ubuntu1.1) …

Að velja áður óvalinn pakka mongodb-server-core.

Undirbúningur fyrir að taka upp … / 14-mongodb-server-core_1% 3a3.6.3-0ubuntu1.1_amd64.deb …

Upptaka mongodb-server-algerlega (1: 3.6.3-0ubuntu1.1) …

Að velja mongodb-netþjón sem áður var ekki valinn.

Undirbúningur fyrir að taka upp … / 15-mongodb-server_1% 3a3.6.3-0ubuntu1.1_all.deb …

Upptaka mongodb-netþjóninn (1: 3.6.3-0ubuntu1.1) …

Að velja áður óvalinn pakka mongodb.

Undirbúningur fyrir að taka upp … / 16-mongodb_1% 3a3.6.3-0ubuntu1.1_amd64.deb …

Upptaka mongodb (1: 3.6.3-0ubuntu1.1) …

Setja upp mongodb-server-core (1: 3.6.3-0ubuntu1.1) …

Setja upp mongó-verkfæri (3.6.3-0ubuntu1) …

Setja upp mongodb viðskiptavini (1: 3.6.3-0ubuntu1.1) …

Setja upp mongodb-server (1: 3.6.3-0ubuntu1.1) …

invoke-rc.d: gat ekki ákvarðað núverandi hlaupastig

invoke-rc.d: policy-rc.d neitaði framkvæmd upphafsins.

Setja upp mongodb (1: 3.6.3-0ubuntu1.1) …

Að vinna úr kallarum fyrir libc-bin (2.27-3ubuntu1) …

Fjarlægir milligám 88609c005e73

—> d9c072cb1f84

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

—> Hlaupandi í f817778f69ab

Fjarlægir milligám ílát f817778f69ab

—> a3fbdb3def5c

Skref 8/10: ÚTLIT 27017

—> Hlaupandi í 8d070e2a1e07

Fjarlægir milligám ílát 8d070e2a1e07

—> f770776a538c

Skref 9/10: CMD ["–höfn 27017"]

—> Hlaupandi í ab612410df77

Fjarlægir milligám ílát ab612410df77

—> e5830b80934f

Skref 10/10: ENTRYPOINT usr / bin / mongod

—> Hlaupandi í 95f574727aab

Fjarlægir milligám ílát 95f574727aab

—> 095d17727ca0

Byggð tókst 095d17727ca0

Geekflare_mongodb merkt með góðum árangri: nýjasta

Við skulum athuga hvort myndakjallarinn hafi verið búinn til með nafninu geekflare_mongodb.

[varið með tölvupósti]: ~ $ skipakvísmyndir

AÐGERÐAR TAG MYNDIR BÚNAÐUR STÆRÐ

geekflare_mongodb nýjasta 095d17727ca0 fyrir 3 mínútum 325MB

ubuntu nýjasta 3556258649b2 fyrir 4 dögum 64.2MB

mean_express nýjasta 35dcb3df9806 fyrir 6 dögum 923MB

mean_angular nýjasta 9f8d61db600c fyrir 6 dögum 1.29GB

Keyra myndina af tengikví geekflare_mongodb inni í gámamongo_container.

[varið með tölvupósti]: ~ $ skipuleggjari – heiti mongo_container -i -t geekflare_mongodb

2019-07-27T19: 38: 23.734 + 0000 I CONTROL [initandlisten] MongoDB byrjun: pid = 6 höfn = 27017 dbpath = / data / db 64 bita gestgjafi = 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 útgáfa: 9586e557d54ef70f9ca4b43c26892cd55257e1a5

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

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

2019-07-27T19: 38: 23.739 + 0000 I CONTROL [initandlisten] mát: enginn

2019-07-27T19: 38: 23.739 + 0000 I CONTROL [initandlisten] byggja umhverfi:

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

2019-07-27T19: 38: 23.739 + 0000 ÉG STYRING [initandlisten] target_arch: x86_64

2019-07-27T19: 38: 23.739 + 0000 I CONTROL [valmöguleikar]: {}

2019-07-27T19: 38: 23.745 + 0000 I STORAGE [initandlisten] wiredtiger_open config: búa til, cache_size = 2038M, session_max = 20000, eviction = (thread_min = 4, threads_max = 4), config_base = false, tölfræði = (hratt) , log = (virkt = satt, skjalasafn = satt, slóð = dagbók, þjöppu = snilld), file_manager = (close_idle_time = 100000), tölfræði_log = (bíddu = 0), orðrétt = (recovery_progress),

2019-07-27T19: 38: 24.733 + 0000 ÉG STYRING [initandlisten]

2019-07-27T19: 38: 24.734 + 0000 I CONTROL [initandlisten] ** VIÐVÖRUN: Aðgangsstýring er ekki virk fyrir gagnagrunninn.

2019-07-27T19: 38: 24.735 + 0000 I CONTROL [initandlisten] ** Lesa og skrifa aðgang að gögnum og stillingum er óheft.

2019-07-27T19: 38: 24.736 + 0000 I CONTROL [initandlisten] ** VIÐVÖRUN: Þú ert að keyra þetta ferli sem rót notandi, sem er ekki mælt með.

2019-07-27T19: 38: 24.736 + 0000 ÉG STYRING [initandlisten]

2019-07-27T19: 38: 24.736 + 0000 I STYRJA [initandlisten] ** VIÐVÖRUN: Þessi netþjónn er bundinn localhost.

2019-07-27T19: 38: 24.737 + 0000 I CONTROL [initandlisten] ** Fjarkerfi geta ekki tengst þessum netþjóni.

2019-07-27T19: 38: 24.737 + 0000 I CONTROL [initandlisten] ** Ræstu netþjóninn með –bind_ip til að tilgreina hvaða IP

2019-07-27T19: 38: 24.737 + 0000 I CONTROL [initandlisten] ** tekur á því að það ætti að þjóna svörum frá, eða með –bind_ip_all til

2019-07-27T19: 38: 24.737 + 0000 ÉG STJÓRNUN [initandlisten] ** bindast öll tengi. Ef óskað er eftir þessari hegðun, byrjaðu á

2019-07-27T19: 38: 24.738 + 0000 I CONTROL [initandlisten] ** server með –bind_ip 127.0.0.1 til að slökkva á þessari viðvörun.

2019-07-27T19: 38: 24.738 + 0000 ÉG STYRING [initandlisten]

2019-07-27T19: 38: 24.739 + 0000 ÉG GEymsla [initandlisten] createCollection: admin.system.version með meðfylgjandi UUID: 4b8b509d-633a-46c1-a302-cb8c82b0d5d3

2019-07-27T19: 38: 24.788 + 0000 I COMMAND [initandlisten] stillingareinkenni SamhæfniVersion to 3.6

2019-07-27T19: 38: 24.818 + 0000 ÉG GEymsla [initandlisten] createCollection: local.startup_log með myndaðri UUID: 6c1c0366-4b1b-4b92-9fcd-d18acc126072

2019-07-27T19: 38: 24.862 + 0000 I FTDC [initandlisten] Frumstilla greiningargagnaupptöku í fullu starfi með skráasafni ‘/ data / db/diagnostic.data’

2019-07-27T19: 38: 24.866 + 0000 I NETWORK [initandlisten] að bíða eftir tengingum í höfn 27017

Opnaðu nýja flugstöð og athugaðu hvort mongo_container er í gangi.

[varið með tölvupósti]: ~ $ skipstjóri ps

ID gáma IMAGE MYNDATEXTI SKAPAÐ STATUS HÖNNUNNAMN

b0095c1e5536 geekflare_mongodb   "/ bin / sh -c usr / bin / …"   Fyrir 35 sekúndum Upp 33 sekúndur 27017 / tcp mongo_container

Eins og þú sérð er gámurinn búinn til úr geekflare_mongodb myndinni í gangi.

Ég vona að þetta gefi þér hugmynd um dockerfile og ávinning þess. Þú gætir líka skoðað þessi skjöl á Dockerfile bestu venjur til að læra meira.

BÖRUR:

  • Docker

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