Kas yra „Dockerfile“ ir kaip sukurti „Docker“ vaizdą?

Dirbdami prie doko projektų, turimi doko atvaizdai dažniausiai neatitiks jūsų reikalavimų.


Štai čia „Dockerfile“ patenka į paveikslėlį; tai padės sukurti pasirinktinius „Docker“ vaizdus. Taigi žinoti apie „Dockerfile“ yra būtina.

Kas yra „Dockerfile“?

Tai paprastas tekstinis failas su komandų ar instrukcijų rinkiniu. Šios komandos / instrukcijos vykdomos paeiliui, norint atlikti veiksmus su pagrindiniu atvaizdu, kad būtų sukurtas naujas doko vaizdas.

komentarai ir komandos + argumentai yra dviejų rūšių pagrindinių eilutės blokai „Dockerfile“ sintaksėje

Komentuoja sintaksę

# Linijiniai blokai, naudojami komentuojant

komandos argumentas argumentas1 …..

Komandos + argumentai Pavyzdys

# Linijiniai blokai, naudojami komentuojant

komandos argumentas argumentas1 …..

Žemiau yra tai, kaip atrodys jūsų darbo eiga.

  • Sukurkite „Dockerfile“ ir paminėkite instrukcijas, kaip sukurti „Docker“ vaizdą
  • Vykdykite doko pastatymo komandą, kuri sukurs doko vaizdą
  • Dabar doko vaizdas yra paruoštas naudoti. Norėdami sukurti konteinerius, naudokite doko paleisties komandą

„dockerfile“ darbo eiga

Pagrindinės komandos

IŠ – Apibrėžiamas pagrindinis vaizdas, kurį norite naudoti, ir pradėkite kūrimo procesą.

BĖGTI – Norint paleisti iš vaizdo, reikia komandos ir jos argumentų.

CMD – Panaši funkcija kaip RUN komanda, tačiau ji vykdoma tik po to, kai konteineris yra paleidžiamas.

ĮEJIMAS – Kuriant sudėtinį rodinį, jis nukreipia į jūsų numatytąją programą paveikslėlyje.

PAPILDYTI – Jis nukopijuoja failus iš šaltinio į paskirties vietą (talpyklos viduje).

ENV – Nustato aplinkos kintamuosius.

Kaip sukurti „Docker“ vaizdą naudojant „Dockerfile“?

Pirmiausia sukurkime „Dockerfile“.

[apsaugotas el. paštu]: ~ $ gedit Dockerfile

Įdėkite į jį žemiau pateiktas komandas / instrukcijas ir išsaugokite.

# Pagrindinį vaizdą nustatykite į „Ubuntu“
IŠ Ubuntu

# Atnaujinkite saugyklos šaltinių sąrašą ir įdiekite „gnupg2“
Vykdyti atnaujinimą „apt-get“ && apt-get install -y gnupg2

# Pridėkite paketo patvirtinimo raktą
RUN apt-key adv – klavišų serveris hkp: //keyserver.ubuntu.com: 80 – recv 7F0CEB10

# Įtraukite „MongoDB“ į saugyklos šaltinių sąrašą
RUN echo ‘deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen’ > tee /etc/apt/sources.list.d/mongodb.list

# Atnaujinkite saugyklos šaltinių sąrašą
Vykdyti atnaujinimą „apt-get“

# Įdiekite „MongoDB“ paketą (.deb)
Vykdyti „get-install install -y mongodb“

# Sukurkite numatytąjį duomenų katalogą
RUN mkdir -p / data / db

# Parodykite numatytąjį prievadą
POZICIJA 27017

# Numatytasis prievadas vykdant įėjimo tašką („MongoDB“)
CMD ["–uostas 27017"]

# Nustatykite numatytąją konteinerio komandą
ENTRYPOINT usr / bin / mongodb

Šiame „Dockerfile“ „ubuntu“ nustatytas kaip pagrindinis vaizdas. Tada minimos būtinos komandos ir argumentai norint įdiegti „MongoDB“. „Port 27017“ yra veikiamas „MongoDB“ su numatytąja konteinerio komanda kaip usr / bin / mongodb

Tada aš paleisiu jį norėdamas sukurti doko atvaizdą.

„Dockerfile“ paleidimas

Ši komanda po sėkmingo vykdymo sukurs dokininko atvaizdą pavadinimu geekflare_mongodb.

[apsaugotas el. paštu]: ~ $ docker build -t geekflare_mongodb .

Siunčiamas kūrimo kontekstas į „Docker“ demoną 667,2 MB

1/9 žingsnis: IŠ Ubuntu

vėliausiai: ištraukimas iš bibliotekos / ubuntu

7413c47ba209: išsitraukite

0fe7e7cbb2e8: Ištraukite

1d425c982345: „pull“

344da5c95cec: Ištraukite

Digest: sha256: c303f19cfe9ee92badbbbd7567bc1ca47789f79303ddcef56f77687d4744cd7a

Būsena: atsisiųstas naujesnis „ubuntu“ vaizdas: vėliausias

—> 3556258649b2

10 veiksmas: Vykdykite atnaujinimą „apt-get“ && apt-get install -y gnupg2

—> Veikia de3706328761

Gaukite: 1 http://security.ubuntu.com/ubuntu bioninio saugumo „InRelease“ [88,7 kB]

Gaukite: 2 http://archive.ubuntu.com/ubuntu bionic InRelease [242 kB]

Pateikta 16,9 MB per 38 s (445 kB / s)

Skaitymas paketų sąrašai…

Skaitymas paketų sąrašai…

Pastatų priklausomybės medis…

Informacijos apie būseną skaitymas…

Reikia gauti 5187 kB archyvų.

Po šios operacijos bus naudojama 15,8 MB papildomos vietos diske.

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

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

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

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

debconf: atidėtas paketo konfigūravimas, nes apt-utils neįdiegtas

Pateikta 5187 kB per 12 s (416 kB / s)

Anksčiau nepasirinkto paketo skaitymo eilutės pasirinkimas.

(Skaitoma duomenų bazė … Šiuo metu įdiegta 4040 failų ir katalogų.)

Pasiruošimas išpakuoti … / 00-readline-common_7.0-3_all.deb …

Išpakuoti įprastą eilutę (7.0-3) …

Anksčiau nepasirinkto paketo libreadline7 pasirinkimas: amd64.

Pasiruošimas išpakuoti … / 01-libreadline7_7.0-3_amd64.deb …

Pasirinkus anksčiau nepasirinktą paketo dirmngr.

„Libnpth0“ nustatymas: „amd64“ (1.5-3) …

„Libksba8“ nustatymas: „amd64“ (1.3.5-2) …

„Gnupg-l10n“ (2.2.4-1ubuntu1.2) nustatymas …

Apdorojami „libc-bin“ aktyvikliai (2.27-3ubuntu1) …

Tarpinio konteinerio išėmimas de3706328761

—> a32533894ed1

3 žingsnis: Vykdyti „apt-key adv“ – „keyserver hkp“: //keyserver.ubuntu.com: 80 – „recv 7F0CEB10“

—> Bėgimas 69c4dba38983

Įspėjimas: apt-key išvesties nereikėtų analizuoti (stdout nėra terminalas)

Vykdymas: /tmp/apt-key-gpghome.MuT5BDWwKZ/gpg.1.sh – raktų serverio hkp: //keyserver.ubuntu.com: 80 –recv 7F0CEB10

„gpg“: raktas 5F8F93707F0CEB10: viešasis raktas "Visiškai teisėtas pasirašymo raktas <[apsaugotas el. paštu]>" importuotas

„gpg“: raktas 9ECBEC467F0CEB10: 1 parašas nepatikrintas dėl trūkstamo rakto

„gpg“: raktas 9ECBEC467F0CEB10: viešasis raktas "Richardas Kreuteris <[apsaugotas el. paštu]>" importuotas

gpg: Bendras apdorotų skaičius: 2

gpg: importuotas: 2

Tarpinio konteinerio 69c4dba38983 pašalinimas

—> cffbe06c1b50

4/10 veiksmas: Vykdykite aidą „deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen“ > tee /etc/apt/sources.list.d/mongodb.list

—> Bėgimas 40630fd7b0a9

Tarpinio konteinerio 40630fd7b0a9 išėmimas

—> „a1bd9d8d7e51“

5/10 žingsnis: Vykdykite atnaujinimą „apt-get“

—> Veikia 750717d9c0ea

Rezultatas: 1 http://archive.ubuntu.com/ubuntu bioninis „InRelease“

Rezultatas: 2 http://archive.ubuntu.com/ubuntu bionic -naujinimai „InRelease“

Rezultatas: 3 http://security.ubuntu.com/ubuntu bionic-security „InRelease“

Rezultatas: 4 http://archive.ubuntu.com/ubuntu bionic-backports „InRelease“

Skaitymas paketų sąrašai…

Tarpinio konteinerio 750717d9c0ea pašalinimas

—> 397d6501db58

6/10 žingsnis: Vykdykite „get-install install -y mongodb“

—> Bėgimas 88609c005e73

Skaitymas paketų sąrašai…

Pastatų priklausomybės medis…

Informacijos apie būseną skaitymas…

Bus įdiegti šie NAUJI paketai:

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-klientams

mongodb-server mongodb-server-core

0 atnaujinta, 17 naujai įdiegta, 0 pašalinta ir 0 neatnaujinta.

Reikia gauti 53,7 MB archyvų.

Po šios operacijos bus naudojama 218 MB papildomos vietos diske.

Gaukite: 1 http://archive.ubuntu.com/ubuntu bionic-updates / visatos „amd64“ „mongodb“ klientai „amd64 1“: 3.6.3-0ubuntu1.1 [20.2 MB]

Gaukite: 2 http://archive.ubuntu.com/ubuntu bionic-updates / universe amd64 „mongodb-server-core“ amd64 1: 3.6.3-0ubuntu1.1 [20.3 MB]

Gaukite: 3 http://archive.ubuntu.com/ubuntu bionic-updates / universe amd64 „mongodb-server“ all 1: 3.6.3-0ubuntu1.1 [12.6 kB]

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

Pateikta 53,7 MB per 10 s (5485 kB / s)

Anksčiau nepasirinkto paketo libpcap0.8 pasirinkimas: amd64.

(Duomenų bazės skaitymas … Šiuo metu įdiegti 4390 failų ir katalogų.)

Anksčiau nepasirinktų „mongodb-kliento“ paketų pasirinkimas.

Pasiruošimas išpakuoti … / 13-mongodb-klientams_1% 3a3.6.3-0ubuntu1.1_amd64.deb …

Išpakuokite „mongodb“ klientus (1: 3.6.3-0ubuntu1.1) …

Anksčiau nepasirinkto paketo „mongodb-server-core“ pasirinkimas.

Pasiruošimas išpakuoti … / 14-mongodb-server-core_1% 3a3.6.3-0ubuntu1.1_amd64.deb …

Išpakuokite „mongodb-server-core“ (1: 3.6.3-0ubuntu1.1) …

Anksčiau nepasirinkto paketo „mongodb-server“ pasirinkimas.

Pasiruošimas išpakuoti … / 15-mongodb-server_1% 3a3.6.3-0ubuntu1.1_all.deb …

Išpakuokite „mongodb“ serverį (1: 3.6.3-0ubuntu1.1) …

Anksčiau nepasirinkto paketo „mongodb“ pasirinkimas.

Pasiruošimas išpakuoti … / 16-mongodb_1% 3a3.6.3-0ubuntu1.1_amd64.deb …

Išpakuokite „mongodb“ (1: 3.6.3-0ubuntu1.1) …

„Mongodb-server-core“ nustatymas (1: 3.6.3-0ubuntu1.1) …

„Mongo“ įrankių nustatymas (3.6.3-0ubuntu1) …

„Mongodb“ klientų nustatymas (1: 3.6.3-0ubuntu1.1) …

„Mongodb“ serverio nustatymas (1: 3.6.3-0ubuntu1.1) …

invoke-rc.d: nepavyko nustatyti dabartinio lygio

invoke-rc.d: policy-rc.d atmetė pradžios vykdymą.

„Mongodb“ nustatymas (1: 3.6.3-0ubuntu1.1) …

Apdorojami „libc-bin“ aktyvikliai (2.27-3ubuntu1) …

Tarpinio konteinerio 88609c005e73 išėmimas

—> d9c072cb1f84

7/10 veiksmas: Vykdykite „mkdir -p / data / db“

—> Veikia f817778f69ab

Tarpinio konteinerio f817778f69ab pašalinimas

—> a3fbdb3def5c

8/10 veiksmas: POZICIJA 27017

—> Veikia 8d070e2a1e07

Tarpinio konteinerio 8d070e2a1e07 išėmimas

—> f770776a538c

9/10 veiksmas: CMD ["–uostas 27017"]

—> Veikia ab612410df77

Tarpinio konteinerio pašalinimas ab612410df77

—> e5830b80934f

10/10 žingsnis: ENTRYPOINT usr / bin / mongod

—> Veikia 95f574727aab

Tarpinio konteinerio 95f574727aab pašalinimas

—> 095d17727ca0

Sėkmingai pastatytas 095d17727ca0

Sėkmingai pažymėta geekflare_mongodb: vėliausia

Leiskite mums patikrinti, ar doko vaizdas buvo sukurtas pavadinimu geekflare_mongodb.

[apsaugotas el. paštu]: ~ $ dokininkų vaizdai

REPOSITORY ŽEMĖLAPIO VAIZDO ID SUKURTAS DYDIS

geekflare_mongodb naujausias 095d17727ca0 prieš 3 minutes 325MB

„ubuntu“ naujausias 3556258649b2 prieš 4 dienas 64,2 MB

mean_express naujausias 35dcb3df9806 prieš 6 dienas 923 MB

mean_angular latest 9f8d61db600c Prieš 6 dienas 1,29 GB

Paleiskite doko vaizdą geekflare_mongodb konteinerio „mongo_container“ viduje.

[apsaugotas el. paštu]: ~ $ dokininko paleidimas – vardas mongo_container -i -t geekflare_mongodb

2019-07-27T19: 38: 23.734 + 0000 I CONTROL [initandlisten] MongoDB pradžia: pid = 6 prievadas = 27017 dbpath = / data / db 64 bitų pagrindinis kompiuteris = b0095c1e5536

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

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

2019-07-27T19: 38: 23.736 + 0000 I CONTROL [initandlisten] OpenSSL versija: OpenSSL 1.1.1 2018 rugsėjo 11 d.

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

2019-07-27T19: 38: 23.739 + 0000 I CONTROL [initandlisten] moduliai: nėra

2019-07-27T19: 38: 23.739 + 0000 I CONTROL [initandlisten] kurti aplinką:

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

2019-07-27T19: 38: 23.745 + 0000 I STORAGE [initandlisten] wiredtiger_open config: sukurti, cache_size = 2038M, session_max = 20000, evikcija = (threads_min = 4, threads_max = 4), config_base = false, statistika = (greitas) , žurnalas = (įjungta = teisinga, archyvas = teisinga, kelias = žurnalas, kompresorius = šmaikštus), failo valdytojas = (artimas_laikymo laikas = 100000), statistikos žurnalas = (laukti = 0), išsamus žodis = (atkūrimo_programa),

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

2019-07-27T19: 38: 24.734 + 0000 I KONTROLĖ [initandlisten] ** ĮSPĖJIMAS: duomenų bazės prieigos valdymas neįgalintas.

2019-07-27T19: 38: 24.735 + 0000 I CONTROL [initandlisten] ** Skaitymo ir rašymo prieiga prie duomenų ir konfigūracija neribojama.

2019-07-27T19: 38: 24.736 + 0000 I CONTROL [initandlisten] ** ĮSPĖJIMAS: Jūs vykdote šį procesą kaip pagrindinį vartotoją, o tai nerekomenduojama..

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

2019-07-27T19: 38: 24.736 + 0000 I CONTROL [initandlisten] ** ĮSPĖJIMAS: Šis serveris yra prijungtas prie „localhost“.

2019-07-27T19: 38: 24.737 + 0000 I CONTROL [initandlisten] ** Nuotolinės sistemos negalės prisijungti prie šio serverio.

2019-07-27T19: 38: 24.737 + 0000 I CONTROL [initandlisten] ** Paleiskite serverį naudodami –bind_ip ir nurodykite, kuris IP

2019-07-27T19: 38: 24.737 + 0000 I CONTROL [initandlisten] ** adresai, kuriuos ji turėtų pateikti atsakymams iš – ar –bind_ip_all į

2019-07-27T19: 38: 24.737 + 0000 I CONTROL [initandlisten] ** jungiasi prie visų sąsajų. Jei norima tokio elgesio, pradėkite

2019-07-27T19: 38: 24.738 + 0000 I CONTROL [initandlisten] ** serveris su –bind_ip 127.0.0.1, kad būtų išjungtas šis įspėjimas.

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

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

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

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

2019-07-27T19: 38: 24.862 + 0000 I FTDC [initandlisten] Viso darbo laiko diagnostinių duomenų kaupimo inicijavimas aplanke ‘/data/db/diagnostic.data’

2019-07-27T19: 38: 24.866 + 0000 I NETWORK [initandlisten] laukia jungčių prie 27017 prievado

Atidarykite naują terminalą ir patikrinkite, ar veikia mongo_container.

[apsaugotas el. paštu]: ~ $ dokininkas ps

KONTEINERIO VAIZDO KOMANDA SUKūrė STATUSO UOSTŲ PAVADINIMUS

b0095c1e5536 geekflare_mongodb   "/ bin / sh -c usr / bin /…"   Prieš 35 sekundes Iki 33 sekundžių 27017 / tcp mongo_container

Kaip matote, iš geekflare_mongodb atvaizdo sukurtas konteineris yra parengtas ir veikia.

Tikiuosi, kad tai suteiks jums idėją apie „dockerfile“ ir jo naudą. Taip pat galite patikrinti šią dokumentaciją „Dockerfile“ geriausia praktika kad sužinotum daugiau.

ŽENKLAI:

  • Dokininkas

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