Mi a Dockerfile és hogyan lehet Docker képet létrehozni?

Miközben dokkolóprojekteken dolgozik, a meglévő dokkolóképek általában nem felelnek meg az Ön igényeinek.


Itt jön a Dockerfile a képbe; ez segít az egyéni Docker képek létrehozásában. Ezért elengedhetetlen a Dockerfile ismerete.

Mi a Dockerfile??

Ez egy egyszerű szöveges fájl parancs vagy utasítás sorozattal. Ezeket a parancsokat / utasításokat egymás után hajtják végre, hogy az alapképen műveleteket végezzenek, és hozzon létre egy új dokkoló képet.

a megjegyzések és parancsok + argumentumok kétféle fő vonalblokk a Dockerfile szintaxisában

Megjegyzések Szintaxis

# A kommentáláshoz használt vonalblokkok

parancs argumentum argumentum1..

Parancsok + érvek Példa

# A kommentáláshoz használt vonalblokkok

parancs argumentum argumentum1..

Az alábbiakban bemutatjuk, hogyan fog kinézni a munkafolyamat.

  • Hozzon létre egy Docker-fájlt, és említse meg a dokkolókép létrehozásához szükséges utasításokat
  • Futtassa a docker build parancsot, amely felépíti a docker képet
  • Most, hogy a dokkolókép készen áll a használatra, használja a docker futtatás parancsot a tárolók létrehozásához

dockerfile munkafolyamat

Alapvető parancsok

TÓL TŐL – Meghatározza a használni kívánt alapképet, és elindítja az összeállítási folyamatot.

FUSS – A parancs és az argumentumok átveszi a képről.

CMD – Hasonló funkció, mint egy RUN parancsnál, de csak akkor kerül végrehajtásra, ha a tárolót megtestesítik.

BELÉPÉSI PONT – Célozza a képen az alapértelmezett alkalmazást a tároló létrehozásakor.

ADD – Másolja a fájlokat a forrástól a rendeltetési helyig (a tárolóban).

ENV – A környezeti változók beállítása.

Hogyan hozhatunk létre Docker képet Dockerfile segítségével?

Először hozzunk létre egy Docker-fájlt.

[Email protected]: ~ $ gedit Dockerfile

Helyezze bele az alábbi parancsokat / utasításokat, és mentse el.

# Állítsa az alapképet Ubuntu értékre
Ubuntustól

# Frissítse a lerakat-források listáját és telepítse a gnupg2-et
Futtassa az apt-get frissítést && apt-get install -y gnupg2

# Adja hozzá a csomag ellenőrző kulcsát
RUN apt-key adv –keyserver hkp: //keyserver.ubuntu.com: 80 –recv 7F0CEB10

# Adja hozzá a MongoDB-t az adattár-források listájához
RUN echo ‘deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen’ > tee /etc/apt/sources.list.d/mongodb.list

# Frissítse a lerakat-források listáját
Futtassa az apt-get frissítést

# Telepítse a MongoDB csomagot (.deb)
RUN apt-get install -y mongodb

# Hozza létre az alapértelmezett adatkönyvtárat
RUN mkdir -p / data / db

# Nyissa ki az alapértelmezett portot
EXPOZÍCIÓ 27017

# Alapértelmezett port a belépési pont végrehajtásához (MongoDB)
CMD ["–port 27017"]

# Állítsa be az alapértelmezett tárolóparancsot
ENTRYPOINT usr / bin / mongodb

Ebben a Dockerfile-ban az ubuntu van beállítva alapképként. Ezután a szükséges parancsokat és argumentumokat említik a MongoDB telepítéséhez. A 27017 portot a MongoDB ki van téve, alapértelmezett konténer paranccsal, mint usr / bin / mongodb

Ezután futtatom egy dokkoló kép létrehozásához.

Dockerfile futtatása

A következő parancs létrehoz egy geekflare_mongodb nevű dokkoló képet a sikeres végrehajtás után.

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

Összeállítási kontextus küldése a Docker daemon 667.2MB fájlhoz

1/9. Lépés: Ubuntustól

legújabb: Húzza a könyvtárból / ubuntu

7413c47ba209: Húzza be

0fe7e7cbb2e8: Húzza be

1d425c982345: Húzza be

344da5c95cec: Húzza be

Emésztés: sha256: c303f19cfe9ee92badbbbd7567bc1ca47789f79303ddcef56f77687d4744cd7a

Állapot: Letöltött újabb képet az ubuntu számára: legújabb

—> 3556258649b2

10/10 lépés: Futtassa az apt-get frissítést && apt-get install -y gnupg2

—> Futó de3706328761

Töltse le: 1 http://security.ubuntu.com/ubuntu bionic-security InRelease [88,7 kB]

Kap: 2 http://archive.ubuntu.com/ubuntu bionikus InRelease [242 kB]

16,9 MB letöltött 38 másodperc alatt (445 kB / s)

A csomaglisták olvasása…

A csomaglisták olvasása…

Épület függőségi fa…

Állapotinformációk olvasása…

5187 kB archívumot kell beszereznie.

Ez a művelet után 15,8 MB további lemezterületet fog használni.

Get: 1 http://archive.ubuntu.com/ubuntu bionic / main amd64 readline-common mind 7,0-3 [52,9 kB]

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

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

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

debconf: késlelteti a csomag konfigurálását, mivel az apt-utils nincs telepítve

Behozott 5187 kB 12 s-ban (416 kB / s)

Korábban nem kiválasztott csomag readline-common kiválasztása.

(Adatbázis olvasása … 4040 fájl és könyvtár jelenleg telepítve.)

Felkészülés a kicsomagolásra … / 00-readline-common_7.0-3_all.deb …

Readline-common (7.0-3) kicsomagolása …

Korábban nem kiválasztott csomag libreadline7 kiválasztása: amd64.

Felkészülés a kicsomagolásra … / 01-libreadline7_7.0-3_amd64.deb …

Korábban nem kiválasztott csomag kiválasztása dirmngr.

A libnpth0 beállítása: amd64 (1.5-3) …

A libksba8 beállítása: amd64 (1.3.5-2) …

A gnupg-l10n beállítása (2.2.4-1ubuntu1.2) …

A libc-bin feldolgozási indítói (2.27-3ubuntu1) …

A közbenső tartály eltávolítása de3706328761

—> a32533894ed1

3/10 lépés: Futtassa az ad-key adv – keyserver hkp: //keyserver.ubuntu.com: 80 –recv 7F0CEB10

—> Fut a 69c4dba38983-ban

Figyelem: az apt-key kimenetet nem szabad értelmezni (az stdout nem terminál)

Végrehajtás: /tmp/apt-key-gpghome.MuT5BDWwKZ/gpg.1.sh –keyserver hkp: //keyserver.ubuntu.com: 80 –recv 7F0CEB10

gpg: 5F8F93707F0CEB10 kulcs: nyilvános kulcs "Teljesen legitim aláíró kulcs <[Email protected]>" importált

gpg: 9ECBEC467F0CEB10 kulcs: 1 aláírást nem ellenőriztek hiányzó kulcs miatt

gpg: 9ECBEC467F0CEB10 kulcs: nyilvános kulcs "Richard Kreuter <[Email protected]>" importált

gpg: Összes feldolgozott szám: 2

gpg: importált: 2

A közbenső tartály eltávolítása 69c4dba38983

—> cffbe06c1b50

4/10 lépés: A RUN echo ‘deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen’ > tee /etc/apt/sources.list.d/mongodb.list

—> Fut a 40630fd7b0a9 alatt

A közbenső tartály eltávolítása 40630fd7b0a9

—> a1bd9d8d7e51

10/10 lépés: Futtassa az apt-get frissítést

—> Futás: 750717d9c0ea

Találat: 1 http://archive.ubuntu.com/ubuntu bionikus InRelease

Találat: 2 http://archive.ubuntu.com/ubuntu bionic-updates InRelease

Találat: 3 http://security.ubuntu.com/ubuntu bionikus biztonsági InRelease

Találat: 4 http://archive.ubuntu.com/ubuntu bionic-backports InRelease

A csomaglisták olvasása…

A közbenső tartály eltávolítása 750717d9c0ea

—> 397d6501db58

10/10 lépés: Futtassa az apt-get install -y mongodb fájlt

—> Fut a 88609c005e73 alatt

A csomaglisták olvasása…

Épület függőségi fa…

Állapotinformációk olvasása…

A következő új csomagok lesznek telepítve:

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

mongodb-server mongodb-server-core

0 frissítve, 17 újonnan telepítve, 0 eltávolítva és 0 nem frissítve.

53,7 MB archívumot kell beszereznie.

Ez a művelet után 218 MB kiegészítő lemezterületet fog használni.

Töltse le: 1 http://archive.ubuntu.com/ubuntu bionic-updates / univerzum amd64 mongodb-kliens amd64 1: 3.6.3-0ubuntu1.1 [20,2 MB]

Get: 2 http://archive.ubuntu.com/ubuntu bionic-updates / univerzum amd64 mongodb-szerver-core amd64 1: 3.6.3-0ubuntu1.1 [20.3 MB]

Töltse le: 3 http://archive.ubuntu.com/ubuntu bionic-updates / univerzum amd64 mongodb-szerver mind 1: 3.6.3-0ubuntu1.1 [12.6 kB]

Töltse le: 4 http://archive.ubuntu.com/ubuntu bionic-updates / univerzum amd64 mongodb amd64 1: 3.6.3-0ubuntu1.1 [9968 B]

Letöltött 53,7 MB 10 s-ban (5485 kB / s)

Korábban nem kiválasztott csomag kiválasztása libpcap0.8: amd64.

(Adatbázis olvasása … 4390 fájl és könyvtár jelenleg telepítve.)

Korábban nem kiválasztott csomag mongodb-kliensek kiválasztása.

Felkészülés a kicsomagolásra … / 13-mongodb-kliens_1% 3a3.6.3-0ubuntu1.1_amd64.deb …

A mongodb-kliensek kicsomagolása (1: 3.6.3-0ubuntu1.1) …

A korábban nem kiválasztott mongodb-server-core csomag kiválasztása.

Felkészülés a kicsomagolásra … / 14-mongodb-server-core_1% 3a3.6.3-0ubuntu1.1_amd64.deb …

A mongodb-server-core kicsomagolása (1: 3.6.3-0ubuntu1.1) …

A korábban nem kiválasztott mongodb-szerver csomag kiválasztása.

Felkészülés a kicsomagolásra … / 15-mongodb-server_1% 3a3.6.3-0ubuntu1.1_all.deb …

A mongodb-szerver kicsomagolása (1: 3.6.3-0ubuntu1.1) …

A korábban nem kiválasztott mongodb csomag kiválasztása.

Felkészülés a kicsomagolásra … / 16-mongodb_1% 3a3.6.3-0ubuntu1.1_amd64.deb …

A mongodb kicsomagolása (1: 3.6.3-0ubuntu1.1) …

A mongodb-server-core beállítása (1: 3.6.3-0ubuntu1.1) …

A mongószerszámok beállítása (3.6.3-0ubuntu1) …

A mongodb-kliensek beállítása (1: 3.6.3-0ubuntu1.1) …

A mongodb-szerver beállítása (1: 3.6.3-0ubuntu1.1) …

invoke-rc.d: nem sikerült meghatározni az aktuális futási szintet

invoke-rc.d: a policy-rc.d megtagadta a start végrehajtását.

A mongodb beállítása (1: 3.6.3-0ubuntu1.1) …

A libc-bin feldolgozási indítói (2.27-3ubuntu1) …

A közbenső tartály eltávolítása 88609c005e73

—> d9c072cb1f84

7/10 lépés: Futtassa az mkdir -p / data / db fájlt

—> Fut az f817778f69ab-ban

Az f817778f69ab közbenső tartály eltávolítása

—> a3fbdb3def5c

8/10 lépés: EXPOZÍCIÓ 27017

—> Fut a 8d070e2a1e07 alatt

A 8d070e2a1e07 közbenső tartály eltávolítása

—> f770776a538c

9/10 lépés: CMD ["–port 27017"]

—> Futás az ab612410df77-ben

A közbenső tartály eltávolítása ab612410df77

—> e5830b80934f

10/10 lépés: ENTRYPOINT usr / bin / mongod

—> Fut a 95f574727aab-ban

A közbenső tartály eltávolítása 95f574727aab

—> 095d17727ca0

Sikeresen felépített 095d17727ca0

Geekflare_mongodb: legfrissebb címkézése

Vizsgáljuk meg, hogy a dokkoló képe geekflare_mongodb névvel készült-e.

[Email protected]: ~ $ dokkoló képek

A KÖNYVTÁR KÉP-azonosítója létrehozta a méretet

geekflare_mongodb legújabb 095d17727ca0 3 perccel ezelőtt 325MB

ubuntu legújabb 3556258649b2 4 nappal ezelőtt 64,2 MB

mean_express legújabb 35dcb3df9806 6 nappal ezelőtt 923MB

mean_angular legújabb 9f8d61db600c 6 nappal ezelőtt 1,29 GB

Futtassa a geekflare_mongodb dokkoló képet egy mongo_container tartályban.

[Email protected]: ~ $ docker futtatás – mongo_container -i -t geekflare_mongodb név

2019-07-27T19: 38: 23.734 + 0000 I CONTROL [initandlisten] MongoDB indítása: pid = 6 port = 27017 dbpath = / data / db 64 bites host = b0095c1e5536

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

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

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

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

2019-07-27T19: 38: 23.739 + 0000 I CONTROL [initandlisten] modulok: nincs

2019-07-27T19: 38: 23.739 + 0000 I CONTROL [initandlisten] építési környezet:

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] lehetőségek: {}

2019-07-27T19: 38: 23.745 + 0000 I TÁROLÁS [initandlisten] wiredtiger_open config: létrehozás, cache_size = 2038M, session_max = 20000, evikció = (threads_min = 4, threads_max = 4), config_base = false, statisztikák = (gyors) log = (enabled = true, archive = true, path = folyóirat, kompresszor = szellemes), file_manager = (close_idle_time = 100000), statistics_log = (várakozás = 0), bőbeszédű = (recovery_progress),

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

2019-07-27T19: 38: 24.734 + 0000 I KEZELÉS [initandlisten] ** FIGYELEM: A hozzáférés-vezérlés nem engedélyezett az adatbázisban.

2019-07-27T19: 38: 24.735 + 0000 I CONTROL [initandlisten] ** Az adatok olvasására és írására való hozzáférés és a konfiguráció nem korlátozott.

2019-07-27T19: 38: 24.736 + 0000 I CONTROL [initandlisten] ** FIGYELMEZTETÉS: Ezt a folyamatot root felhasználóként futtatja, ami nem ajánlott.

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

2019-07-27T19: 38: 24.736 + 0000 I KEZELÉS [initandlisten] ** FIGYELMEZTETÉS: Ez a szerver a localhosthoz van kötve.

2019-07-27T19: 38: 24.737 + 0000 I CONTROL [initandlisten] ** A távoli rendszerek nem tudnak kapcsolódni ehhez a szerverhez.

2019-07-27T19: 38: 24.737 + 0000 I CONTROL [initandlisten] ** Indítsa el a kiszolgálót a –bind_ip paranccsal az IP meghatározásához

2019-07-27T19: 38: 24.737 + 0000 I CONTROL [initandlisten] ** címek, amelyeknek a –bind_ip_all_all, vagy azzal a válaszokkal kell szolgálniuk, hogy

2019-07-27T19: 38: 24.737 + 0000 I CONTROL [initandlisten] ** kötődik az összes interfészhez. Ha ez a viselkedés kívánatos, indítsa el a

2019-07-27T19: 38: 24.738 + 0000 I CONTROL [initandlisten] ** szerver a –bind_ip 127.0.0.1 verzióval a figyelmeztetés letiltásához.

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

2019-07-27T19: 38: 24.739 + 0000 I TÁROLÁS [initandlisten] createCollection: admin.system.version a megadott UUID-vel: 4b8b509d-633a-46c1-a302-cb8c82b0d5d3

2019-07-27T19: 38: 24.788 + 0000 I COMMAND [initandlisten] beállítási tulajdonságCompatibilityVersion 3.6-ra

2019-07-27T19: 38: 24.818 + 0000 I TÁROLÁS [initandlisten] createCollection: local.startup_log a létrehozott UUID-vel: 6c1c0366-4b1b-4b92-9fcd-d18acc126072

2019-07-27T19: 38: 24.862 + 0000 I FTDC [initandlisten] A teljes munkaidős diagnosztikai adatgyűjtés inicializálása az ‘/data/db/diagnostic.data’ könyvtárral

2019-07-27T19: 38: 24.866 + 0000 I HÁLÓZAT [initandlisten] várja a kapcsolatokat a 27017 porton

Nyisson meg egy új terminált és ellenőrizze, hogy fut-e a mongo_container.

[Email protected]: ~ $ dokkoló ps

Konténer azonosító KÉP-KEZELŐ LÉTREHOZOTT ÁLLAPOTKORMÁNYOK NEVE

b0095c1e5536 geekflare_mongodb   "/ bin / sh -c usr / bin /…"   35 másodperccel ezelőtt 33 másodperccel 27017 / tcp mongo_container

Mint láthatja, a geekflare_mongodb képből létrehozott tároló készen áll és fut.

Remélem, ez ad ötletet a dockerfileről és annak előnyeiről. A dokumentációt itt is megtekintheti A Docker fájl legjobb gyakorlatai többet tanulni.

CÍMKÉK:

  • Dokkmunkás

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