Hvernig á að smíða og stilla sérsniðnar Docker myndir sjálfkrafa með Dockerfile - Part 3


Þessi kennsla mun einbeita sér að því hvernig á að búa til sérsniðna Docker mynd byggða á Ubuntu með Apache þjónustu uppsett. Allt ferlið verður sjálfvirkt með því að nota Dockerfile.

Hægt er að búa til Docker myndir sjálfkrafa úr textaskrám, sem kallast Dockerfiles. Docker skrá inniheldur skref fyrir skref pantaðar leiðbeiningar eða skipanir sem notaðar eru til að búa til og stilla Docker mynd.

  • Settu upp Docker og lærðu Docker Container Manipulation – Part 1
  • Dreifa og keyra forrit undir Docker Containers – Part 2

Í grundvallaratriðum inniheldur Docker skrá ýmsar leiðbeiningar til að smíða og stilla tiltekinn ílát byggt á kröfum þínum. Eftirfarandi leiðbeiningar eru mest notaðar, sumar þeirra eru nauðsynlegar:

  1. FROM = Skylda sem fyrsta leiðbeiningin í Docker skrá. Veitir Docker að draga grunnmyndina sem þú ert að byggja nýju myndina úr. Notaðu merki til að tilgreina nákvæmlega myndina sem þú ert að byggja úr:

Ex: FROM ubuntu:20.04

  1. MAINTAINER = Höfundur byggingarmyndarinnar
  2. RUN = Hægt er að nota þessa leiðbeiningar á mörgum línum og keyrir hvaða skipanir sem er eftir að Docker mynd hefur verið búin til.
  3. CMD = Keyra hvaða skipun sem er þegar Docker myndin er ræst. Notaðu aðeins eina CMD leiðbeiningar í Dockerfile.
  4. ENTRYPOINT = Sama og CMD en notað sem aðalskipun fyrir myndina.
  5. EXPOSE = Leiðbeinir ílátinu að hlusta á nettengi þegar það er í gangi. Sjálfgefið er ekki hægt að ná í gámahöfnin frá hýsilnum.
  6. ENV = Stilltu gámaumhverfisbreytur.
  7. ADD = Afritaðu tilföng (skrár, möppur eða skrár af vefslóðum).

Skref 1: Búa til eða skrifa Dockerfile geymslu

1. Í fyrsta lagi skulum við búa til einhvers konar Dockerfile geymslur til að endurnýta skrár í framtíðinni til að búa til aðrar myndir. Búðu til tóma möppu einhvers staðar í /var skiptingunni þar sem við munum búa til skrána með leiðbeiningunum sem verða notaðar til að búa til nýju Docker myndina.

# mkdir -p /var/docker/ubuntu/apache
# touch /var/docker/ubuntu/apache/Dockerfile

2. Næst skaltu byrja að breyta skránni með eftirfarandi leiðbeiningum:

# vi /var/docker/ubuntu/apache/Dockerfile

Dokerfile útdráttur:

FROM ubuntu
MAINTAINER  your_name  <[email >
RUN apt-get -y install apache2
RUN echo “Hello Apache server on Ubuntu Docker” > /var/www/html/index.html
EXPOSE 80
CMD /usr/sbin/apache2ctl -D FOREGROUND

Nú skulum við fara í gegnum skráarleiðbeiningarnar:

Fyrsta línan segir okkur að við erum að byggja úr Ubuntu mynd. Ef ekkert merki er sent inn, segjum 14:10 til dæmis, er nýjasta myndin frá Docker Hub notuð.

Á annarri línunni höfum við bætt við nafni og netfangi myndhöfundarins. Næstu tvær RUN línur verða keyrðar í ílátinu þegar myndin er byggð og munu setja upp Apache púkinn og enduróma texta inn á sjálfgefna Apache vefsíðuna.

EXPOSE línan mun gefa Docker gámnum fyrirmæli um að hlusta á höfn 80, en höfnin verður ekki tiltæk fyrir utan. Síðasta línan gefur gámnum fyrirmæli um að keyra Apache þjónustu í forgrunni eftir að gámurinn er ræstur.

3. Það síðasta sem við þurfum að gera er að byrja að búa til myndina með því að gefa út skipunina hér að neðan, sem mun á staðnum búa til nýja Docker mynd sem heitir ubuntu-apache byggt á Dockerfile sem var búin til áður, eins og sýnt er í þetta dæmi:

# docker build -t ubuntu-apache /var/docker/ubuntu/apache/

4. Eftir að myndin hefur verið búin til af Docker geturðu skráð allar tiltækar myndir og auðkennt myndina þína með því að gefa út eftirfarandi skipun:

# docker images

Skref 2: Keyrðu Container and Access Apache frá staðarneti

5. Til að keyra gáminn stöðugt (í bakgrunni) og fá aðgang að gámaútsettu þjónustunni (höfnum) frá hýsilinum eða annarri ytri vél á staðarnetinu þínu, keyrðu eftirfarandi skipun á hýsingarstöðinni þinni:

# docker run -d -p 81:80 ubuntu-apache

Hér keyrir valmöguleikinn -d ubuntu-apache gáminn í bakgrunni (sem púki) og -p valkosturinn kortleggur gámahöfn 80 til localhost tengi 81. Utan staðarnetsaðgangur að Apache þjónustu er aðeins hægt að ná í gegnum port 81.

Netstat skipun mun gefa þér hugmynd um hvaða höfn gestgjafinn er að hlusta á.

Eftir að gámurinn hefur verið ræstur geturðu líka keyrt docker ps skipunina til að skoða stöðu gámsins sem er í gangi.

6. Hægt er að birta vefsíðuna á gestgjafanum þínum frá skipanalínunni með því að nota krulluforritið á móti IP-tölu vélarinnar þinnar, localhost eða netviðmóti vélarinnar á tengi 81. Notaðu IP skipanalínuna til að sýna IP-tölur netviðmótsins.

# ip addr               [List nework interfaces]
# curl ip-address:81    [System Docker IP Address]
# curl localhost:81     [Localhost]

7. Til að heimsækja gámavefsíðuna frá netkerfinu þínu skaltu opna vafra á afskekktum stað og nota HTTP samskiptareglur, IP tölu vélarinnar þar sem gámurinn er í gangi, og síðan tengi 81 eins og sýnt er á myndinni hér að neðan.

http://ip-address:81

8. Til að fá innsýn í hvaða ferlar eru í gangi inni í gámnum skaltu gefa út eftirfarandi skipun:

# docker ps
# docker top <name or ID of the container>

9. Til að stöðva gámaútgáfu hafnarstöðva skipunina á eftir gámaauðkenni eða nafni.

# docker stop <name or ID of the container>
# docker ps

10. Ef þú vilt úthluta lýsandi heiti fyrir ílátið skaltu nota --name valkostinn eins og sýnt er í dæminu hér að neðan:

# docker run --name my-www -d -p 81:80 ubuntu-apache
# docker ps

Nú geturðu vísað til ílátsins fyrir meðferð (byrja, stöðva, efst, tölfræði, osfrv.) aðeins með því að nota úthlutað nafn.

# docker stats my-www

Skref 3: Búðu til kerfisuppsetningarskrá fyrir Docker Container

11. Á CentOS/RHEL geturðu búið til kerfisstillingarskrá og stjórnað ílátinu eins og þú gerir venjulega fyrir aðra staðbundna þjónustu.

Til dæmis, búðu til nýja systemd skrá sem heitir, við skulum segja, apache-docker.service með því að nota eftirfarandi skipun:

# vi /etc/systemd/system/apache-docker.service

apache-docker.service skráarútdráttur:

[Unit]
Description=apache container
Requires=docker.service
After=docker.service

[Service]
Restart=always
ExecStart=/usr/bin/docker start -a my-www
ExecStop=/usr/bin/docker stop -t 2 my-www

[Install]
WantedBy=local.target

12. Eftir að þú hefur lokið við að breyta skránni skaltu loka henni, endurhlaða systemd púkinn til að endurspegla breytingar og byrja ílátið með því að gefa út eftirfarandi skipanir:

# systemctl daemon-reload
# systemctl start apache-docker.service
# systemctl status apache-docker.service

Þetta var bara einfalt dæmi um hvað þú getur gert með einfaldri Dockerfile en þú getur fyrirfram smíðað nokkur ansi háþróuð forrit sem þú getur kveikt á á örfáum sekúndum með lágmarks fjármagni og fyrirhöfn.

Frekari lestur: