Docker

Ako funguje Dockerfile?

Ako funguje Dockerfile?
Pomocou obrazu ukotvenia môžete nasadiť iba jeden kontajner. Ak však potrebujete nasadiť niekoľko kontajnerov (každý na rôzne úlohy) z rovnakého obrázka, potom čo sa stane? Môžete to vyriešiť pomocou súboru docker.

Dockerfile je jednoduchý textový súbor, ktorý obsahuje všetky príkazy, ktoré by mohol používateľ vyvolať na príkazovom riadku na zostavenie alebo vytvorenie obrázka. Pomocou zostavy ukotviteľného panela môžete ľahko automatizovať zostavenie, ktoré postupne spúšťa viacero príkazov definovaných v súbore ukotviteľného panela.

Napríklad chcete stiahnuť obrázok ukotvenia z centra ukotvenia pre vaše konkrétne vývojové potreby. Potom chcete aktualizovať obraz, nainštalovať niekoľko balíkov pre váš vývojový proces. V tomto prípade môžete vytvoriť súbor dockerfile, zahrnúť všetky parametre pre vaše konkrétne potreby a vytvoriť svoj vlastný obrázok. Po vytvorení dockerfile ho môžete použiť znova a znova na vytvorenie rovnakého obrázka bez manuálnej inštalácie všetkých požadovaných balíkov pre váš vývojový proces.

Dockerfile Basic

Pred prácou s dockerfile je dôležité vedieť, ako vytvoriť dockerfile. Dockerfile obsahuje konkrétne kľúčové slová, pomocou ktorých je možné vytvoriť konkrétny obrázok. Stručné vysvetlenie všetkých kľúčových slov použitých v súbore docker je uvedené nižšie:

Vytváranie Dockerfile

V tejto časti vytvoríme dockerfile na vytvorenie obrazu servera LAMP zo základného obrazu Ubuntu.

Najskôr budete musieť vytvoriť adresár na uloženie súboru docker. Môžete ho vytvoriť pomocou nasledujúceho príkazu:

mkdir SVETLO

Ďalej vytvorte v adresári adresár s názvom Dockerfile:

nano LAMP / Dockerfile

Pridajte nasledujúce riadky:

FROM ubuntu: najnovšie
ÚDRŽBÁR Hitesh Jethva
ENV DEBIAN_FRONTEND = neinteraktívne
RUN apt-get update -y && apt-get install apache2 mariadb-server
libapache2-mod-php php php-cli php-common php-mysql php-json php-curl -y
CMD ["apachectl", "- D", "FOREGROUND"]
EXPOZÍCIA 8080

Po dokončení súbor uložte a zatvorte.

Budovanie imidžu pomocou súboru Dockerfile

Po vytvorení súboru Dockerfile môžete pomocou súboru Dockerfile ľahko vytvoriť vlastný obrázok LAMP.

Najskôr zmeňte adresár na LAMP a spustením nasledujúceho príkazu vytvorte obraz z tohto súboru:

CD LAMP
docker build -t "lampa: Dockerfile".

Vyššie uvedený príkaz začne sťahovať najnovší obrázok Ubuntu z Docker Hubu a nainštalovaných potrebných balíkov uvedených v súbore Docker. Po úspešnom vytvorení obrázka by sa mal zobraziť nasledujúci výstup:

Zasielanie kontextu zostavenia do Docker daemon 2.048 kB
Krok 1/6: Z ubuntu: najnovšie
najnovšie: Vytiahnutie z knižnice / ubuntu
54ee1f796a1e: Potiahnutie dokončené
f7bfea53ad12: Potiahnutie dokončené
46d371e02073: Potiahnutie dokončené
b66c17bbf772: Potiahnutie dokončené
Digest: sha256: 31dfb10d52ce76c5ca0aa19d10b3e6424b830729e32a89a7c6eee2cda2be67a5
Stav: Stiahnutý novší obrázok pre ubuntu: najnovší
---> 4e2eef94cd6b
Krok 2/6: MAINTAINER Hitesh Jethva
---> Spustené v 047977af2c2a
Demontáž medziľahlého kontajnera 047977af2c2a
---> 1331df625c4c
Krok 3/6: ENV DEBIAN_FRONTEND = neinteraktívny
---> Spustené v 3597152c7a1b
Demontáž medziľahlého kontajnera 3597152c7a1b
---> 86c82c95e75d
Krok 4/6: RUN apt-get update -y && apt-get nainštalovať apache2 mariadb-server
libapache2-mod-php php php-cli php-common php-mysql php-json php-curl -y
Odstraňuje sa medzikus 322532299fd9
---> f6897a9554f7
Krok 5/6: CMD ["apachectl", "- D", "FOREGROUND"]
---> Beží v 669635bc8bcb
Odstraňuje sa medzikus 669635bc8bcb
---> e8400eb2e677
Krok 6/6: EXPOZÍCIA 8080
---> Spustené v 937ae2b2d305
Odstraňuje sa medzikus 937ae2b2d305
---> 2123a857361d
Úspešne postavené 2123a857361d
Lampa bola úspešne označená: Dockerfile

Teraz môžete uviesť zoznam svojich novo vytvorených obrázkov spustením nasledujúceho príkazu:

ukotviteľné obrázky

Mali by ste vidieť nasledujúci výstup:

IDENTIFIKÁCIA REPOSITÁRNEHO IDA VYTVORENÉ VEĽKOSTI
lampa Dockerfile 2123a857361d pred 44 sekundami 520 MB
ubuntu najnovšie 4e2eef94cd6b pred 8 dňami 73.9 MB

Teraz máte v ruke vlastný obraz servera LAMP. Históriu každého príkazu môžete zobraziť aj pomocou nasledujúceho príkazu:

lampa histórie ukotvenia: súbor ukotvenia

Mali by ste vidieť nasledujúci výstup:

OBRÁZOK VYTVORENÝ PODMIENKOU VEĽKOSTI
2123a857361d pred 16 minútami / bin / sh -c # (nop) EXPOSE 8080 0B
e8400eb2e677 pred 16 minútami / bin / sh -c # (nop) CMD ["apachectl" "-D" "FO… 0B
f6897a9554f7 pred 16 minútami / bin / sh -c apt-get aktualizácia -y && apt-get inst… 446 MB
86c82c95e75d pred 17 minútami / bin / sh -c # (nop) ENV DEBIAN_FRONTEND = mimo… 0B
1331df625c4c pred 17 minútami / bin / sh -c # (nop) MAINTAINER Hitesh Jethva 0B
4e2eef94cd6b pred 8 dňami / bin / sh -c # (nop) CMD ["/ bin / bash"] 0B

Vytvorenie kontajnera z obrázka LAMP

Teraz môžete spustiť kontajner z vášho obrázka pomocou nasledujúceho príkazu:

docker run -dit lampa: Dockerfile

Po spustení kontajnera by sa mal zobraziť nasledujúci výstup:

0d2beb7dba01bb763768b116f734ae68286cee00d2ae923b2b7241c39ad54208

Spustený kontajner môžete overiť pomocou nasledujúceho príkazu:

docker ps

Mali by ste dostať nasledujúci výstup:

ID KONTAJNERA OBRAZOVÝ PRÍKAZ VYTVORENÝ STAV NÁZVY STAVOV
lampa c14794784eb2: Dockerfile "apachectl -D FOREGR ..." pred 2 minútami nahor o 2 minúty 0.0.0.0: 8080-> 8080 / tcp quirky_ramanujan

Záver

V tejto príručke ste sa naučili, čo je Dockerfile a ako vytvoriť obraz ukotvenia pomocou Dockerfile. To je veľmi užitočné pri vytváraní vlastných obrázkov namiesto vykonávania zmien na stiahnutom obrázku.

Hry Ako zachytiť a streamovať vašu hernú reláciu v systéme Linux
Ako zachytiť a streamovať vašu hernú reláciu v systéme Linux
V minulosti sa hranie hier považovalo iba za hobby, ale časom došlo v hernom priemysle k obrovskému nárastu z hľadiska technológie i počtu hráčov. Her...
Hry Najlepšie hry na hranie s ručným sledovaním
Najlepšie hry na hranie s ručným sledovaním
Oculus Quest nedávno predstavil skvelú myšlienku ručného sledovania bez ovládačov. Vďaka stále sa zvyšujúcemu počtu hier a aktivít, ktoré vykonávajú p...
Hry Ako zobraziť prekrytie OSD v linuxových aplikáciách a hrách na celú obrazovku
Ako zobraziť prekrytie OSD v linuxových aplikáciách a hrách na celú obrazovku
Hranie hier na celú obrazovku alebo používanie aplikácií v režime rozptýlenia zadarmo na celú obrazovku vás môže odrezať od relevantných systémových i...