Docker Pjesa 4: ndërtimi dhe publikimi i imazheve të personalizuara të dokerit


Në pjesën e tretë, ne shkuam praktikisht me imazhet e docker-it, mësuam bazat dhe krijuam kontejnerin tonë të parë Notepad duke përdorur WordPress ose DokuWiki.

Në këtë pjesë të katërt, ne do të shohim se si ndërtohen imazhet e dokerit dhe do të krijojmë imazhin tonë të personalizuar gati për t'u shkarkuar dhe ndarë me miqtë, kolegët dhe komunitetet tona.

Për këtë tutorial, ne do të përdorim imazhin Whale Docker. Balena është maskota zyrtare e Docker dhe imazhi i dokerit të balenës i ngjan programit Cowsay i cili gjeneron fotografitë ASCII të një lope në terminal me një mesazh. Mund të gjenerojë gjithashtu fotografi duke përdorur imazhe të bëra paraprakisht të kafshëve të tjera, të tilla si Tux the Penguin dhe nuskë Linux.

Hyrje në Docker Files

Në pjesën e mëparshme, ne u prezantuam me Docker Hub dhe mësuam se është një burim i centralizuar i bazuar në cloud për zbulimin e imazheve të kontejnerëve, ndërtimin e imazheve dhe shpërndarjen e atyre imazheve. Mësuam gjithashtu se një imazh docker është një imazh me shumë shtresa në krye të një imazhi bazë. Thënë kështu, përdorimi i një imazhi bazë heq vështirësinë e krijimit nga e para të një OS të përshtatshëm për imazhin e dokerit dhe na jep mundësinë të personalizojmë shtresat e sipërme ku do të qëndrojë softueri ynë.

Për të krijuar një imazh të personalizuar duke përdorur një imazh bazë, ne duhet t'i japim motorit docker udhëzime se si të instaloni dhe konfiguroni paketat dhe skedarët dhe gjithashtu disa cilësime që shkojnë me të. Këto udhëzime janë shkruar në një skedar teksti të thjeshtë të quajtur \dockerfile. Dockerfiles janë si receta që ia dorëzon një kuzhinieri dhe ai/ajo ju gatuan një vakt të mrekullueshëm. Këta skedarë docker janë shkruar duke përdorur një grup hapash të thjeshtë dhe përshkrues që quhen \udhëzime. Çdo udhëzim krijon një shtresë të re në imazhin tonë. Udhëzimet përfshijnë veprime si ekzekutimi i një komande, shtimi i një skedari ose drejtorie, çfarë procesi duhet të ekzekutohet kur lëshohet një kontejner nga imazhi, etj. Ky proces është njësoj si do të vendosni një seri komandash në një skript shell. Pasi të kërkoni ndërtimin e një imazhi, Docker lexon skedarin docker ekzekuton udhëzimet dhe kthen një imazh përfundimtar.

Ndërtimi i një imazhi Docker

Ka dy mënyra për të ndërtuar imazhin tuaj të personalizuar Docker. Mund ta ndërtoni ose në kompjuterin tuaj ose mund të përdorni Docker Hub për të cilin folëm më parë. Në këtë pjesë, ne do të mësojmë se si të ndërtojmë imazhin tonë Docker në nivel lokal dhe më pas ta publikojmë atë në Regjistrin Docker Hub.

Ndërtimi Lokal duke përdorur një Dockerfile

Ne do të krijojmë një imazh të personalizuar Docker duke përdorur imazhin \Whale say\ i cili është një Imazh i vogël Docker (bazuar në një Imazh Ubuntu), i cili kur e ekzekutoni, thotë diçka që keni programuar t'jua thotë.

Së pari, aktivizoni një terminal dhe krijoni një dosje të re duke shtypur:

mkdir mywhale

Kjo direktori shërben si \kontekst për ndërtimin tuaj. Konteksti thjesht do të thotë që ai përmban të gjitha gjërat që ju nevojiten për të ndërtuar me sukses imazhin tuaj.

Hyni në dosjen tuaj të re me:

cd mywhale

dhe krijoni një Dockerfile në dosje duke shtypur:

touch Dockerfile

Tani duhet të shihni Dockerfile-in bosh që krijuam nëse jepni komandën ll:

ll
$ ll
total 8.0K
-rw-rw-r-- 1 user user 0 23:26 Dockerfile

Hapeni atë me redaktuesin tuaj të preferuar të tekstit dhe shtoni:

FROM docker/whalesay:latest

Ky rresht i parë i udhëzimeve, me fjalën kyçe FROM, i tregon Docker se në cilin imazh bazohet imazhi juaj. Ju po e bazoni punën tuaj të re në imazhin ekzistues të balenave.

Udhëzimi tjetër që do të shtojmë do t'i japë aftësinë balenës sonë të tregojë një pasuri. Për të përmbushur këtë detyrë, ne do të përdorim paketën e pasurisë që është e disponueshme në magazinat e Ubuntu (mos harroni se imazhi i balenës bazohet në një imazh të Ubuntu). Programi i fatit ka një komandë që shtyp thëniet e mençura që balena jonë të thotë.

Pra, hapi i parë është instalimi i tij. Për ta bërë këtë, ne shtojmë udhëzimin e zakonshëm të instalimit të apt:

RUN apt -y update && apt -y install fortunes

Pasi imazhi të ketë softuerin që i nevojitet, ju udhëzoni softuerin të funksionojë kur imazhi të ngarkohet. Për ta bërë këtë, ne shtojmë udhëzimin e mëposhtëm:

CMD /usr/games/fortune -a | cowsay

Rreshti i mësipërm i thotë programit të fatit që të dërgojë një kuotë të zgjedhur rastësisht te programi Cowsay

Dhe ne kemi mbaruar! Tani ruajeni skedarin dhe dilni.
Mund të verifikoni se çfarë keni bërë duke ekzekutuar \cat Dockerfile\ në mënyrë që skedari juaj Docker të duket kështu:

cat Dockerfile
FROM docker/whalesay:latest
RUN apt-get -y update && apt-get install -y fortunes
CMD /usr/games/fortune -a | cowsay

Tani që gjithçka (shpresojmë) duket mirë, është koha për të ndërtuar imazhin tonë Docker (mos harroni periudhën . në dhe të komandës).:

docker build -t my-docker-whale .

Komanda e mësipërme merr Dockerfile në dosjen aktuale dhe ndërton një imazh të quajtur \my-docker-whale në kompjuterin tuaj lokal.

Ju mund të verifikoni që imazhi juaj Docker është me të vërtetë i ruajtur në kompjuterin tuaj me:

docker images

Pastaj mund të ekzekutoni imazhin tuaj Docker duke shtypur sa vijon:

docker run my-docker-whale

Pasi të funksionojë, do të merrni diçka si imazhi i mëposhtëm

Publikimi i imazhit tuaj të personalizuar të Docker në Docker Hub

Opsioni juaj tjetër është të publikoni imazhin e krijuar të Docker në Depon e Docker Hub. Për ta bërë këtë, do t'ju duhet të krijoni një llogari në faqen e regjistrimit të Docker Hub ku do të jepni një emër, fjalëkalim dhe adresë emaili për llogarinë tuaj. Duhet të theksoj gjithashtu se shërbimi Docker Hub është falas për imazhet publike të dokerit. Pasi të keni krijuar llogarinë tuaj, mund të shtyni imazhin që keni krijuar më parë, për ta bërë atë të disponueshme për t'u përdorur nga të tjerët.

Për ta bërë këtë, do t'ju duhet ID-ja dhe TAG-ja e imazhit tuaj \my-docker-whale.

Ekzekutoni sërish komandën \docker images\ dhe vini re ID-në dhe TAG-në e imazhit tuaj Docker, p.sh. a69f3f5e1a31.

Tani, me komandën e mëposhtme, ne do të përgatisim imazhin tonë Docker për udhëtimin e tij në botën e jashtme (pjesa e emrit të llogarisë së komandës është emri i llogarisë tuaj në faqen e profilit të Docker Hube):

docker tag a69f3f5e1a31 accountname/my-docker-whale:latest

Ekzekutoni komandën \imazhe docker\ dhe verifikoni imazhin tuaj të sapo etiketuar.

Më pas, përdorni komandën \docker login\ për t'u identifikuar në Docker Hub nga rreshti i komandës.

Formati për komandën e hyrjes është:

docker login --username=yourhubusername 

Kur të kërkohet, futni fjalëkalimin tuaj dhe shtypni enter.

Tani mund ta shtyni imazhin tuaj në depon e krijuar rishtazi:

docker push accountname/my-docker-whale

Komanda e mësipërme mund të marrë pak kohë për t'u përfunduar në varësi të gjerësisë së brezit të ngarkimit të lidhjeve tuaja pasi ngarkon diçka si 180ΜΒ të dhënash (në shembullin tonë). Pasi të ketë përfunduar, mund të shkoni në profilin tuaj në Docker Hub dhe të shikoni imazhin tuaj të ri.

Duke shkarkuar imazhin tuaj të personalizuar

Nëse dëshironi të tërhiqni imazhin tuaj nga depoja juaj e Docker Hub, do t'ju duhet fillimisht të fshini imazhin origjinal nga kompjuteri juaj lokal sepse Docker do të refuzonte të tërhiqte nga qendra pasi imazhet lokale dhe ato të largëta janë identike.

Siç e mbani mend nga pjesa e mëparshme, për të hequr një imazh docker, duhet të ekzekutoni komandën \docker rmi\. Ju mund të përdorni një ID ose emrin për të hequr një imazh:

docker rmi -f a69f3f5e1a31

Tani që imazhi është fshirë, mund ta tërhiqni dhe ngarkoni imazhin nga depoja juaj duke përdorur komandën \docker run\ duke përfshirë emrin e llogarisë tuaj nga Docker Hub.

docker run accountname/my-docker-whale

Meqenëse e kemi fshirë më parë imazhin dhe ai nuk ishte më i disponueshëm në sistemin tonë lokal, Docker do ta shkarkojë atë dhe do ta ruajë në vendndodhjen e caktuar.

Përmbledhje

Në këtë pjesë, mësuam se si të krijojmë një skedar Docker, të shkruajmë disa udhëzime bazë dhe të ndërtojmë një imazh duke e përdorur atë si recetë. Ne mbuluam gjithashtu bazat e shtyrjes së imazhit tonë të ri të personalizuar në regjistrin Docker Hub dhe tërheqjes së tij në makinën tonë lokale. Në pjesën tjetër të kësaj serie mësimesh Docker, unë do të tregoj se si mund të automatizojmë procedurën e krijimit të imazhit në mënyrë që të mund të krijojmë menjëherë imazhe të personalizuara sa herë që na duhen! Qëndroni të sintonizuar.