Otu esi ewulite ma hazie onyonyo Docker na akpaghị aka na Dockerfile - Akụkụ 3


Nkuzi a ga-elekwasị anya ka esi ewuo onyonyo Docker omenala dabere na Ubuntu nwere ọrụ Apache arụnyere. A ga-emezi usoro a niile site na iji Dockerfile.

Enwere ike wulite onyonyo docker ozugbo site na faịlụ ederede, akpọrọ Dockerfiles. Faịlụ Docker nwere ntụzịaka ma ọ bụ iwu nyere iwu site n'usoro iji mepụta na hazie onyonyo Docker.

  • Wụnye Docker wee mụta njikwa akpa akpa Docker – Akụkụ 1
  • Kwunye ma mee ngwa n'okpuru igbe Docker – Nkebi nke 2

N'ụzọ bụ isi, faịlụ Docker nwere ntuziaka dị iche iche iji wuo na hazie otu akpa dabere na ihe ị chọrọ. Ntuziaka ndị a bụ ndị kacha eji, ụfọdụ n'ime ha bụ iwu:

  1. SI = Amanyere iwu dị ka ntuziaka izizi na faịlụ Docker. Na-enye Docker ntụziaka ka ọ dọpụta onyonyo isi ebe ị na-ewu onyonyo ọhụrụ ahụ. Jiri mkpado kọwaa kpọmkwem onyonyo nke ị na-ewu:

Ex: FROM ubuntu:20.04

  1. MAINTAINER = Onye dere ihe onyonyo a rụpụtara
  2. RUN = Enwere ike iji ntuziaka a n'ọtụtụ ahịrị wee mee iwu ọ bụla ka emechara onyonyo Docker.
  3. CMD = Gbaa iwu ọ bụla mgbe ihe onyonyo Docker malitere. Jiri naanị otu ntuziaka CMD na Dockerfile.
  4. ENTRYPOINT = Ọ dị ka CMD mana ejiri ya dị ka isi iwu maka onyonyo a.
  5. EXPOSE = Na-ezi akpa ka ọ gee ntị na ọdụ ụgbọ mmiri mgbe ọ na-agba ọsọ. Enweghị ike ịnweta ọdụ ụgbọ mmiri akpa site na ndabara.
  6. ENV = Tọọ mgbanwe gburugburu akpa.
  7. ADD = Detuo akụrụngwa (faịlụ, akwụkwọ ndekọ aha, ma ọ bụ faịlụ sitere na URL).

Kwụpụ 1: Mepụta ma ọ bụ dee ebe nchekwa Dockerfile

1. Nke mbụ, ka anyị mepụta ụfọdụ ụdị Dockerfile repositories iji jiri faịlụ mee ihe n'ọdịnihu iji mepụta ihe oyiyi ndị ọzọ. Mepụta ndekọ efu ebe dị na /var nkebi ebe anyị ga-emepụta faịlụ ahụ yana ntuziaka a ga-eji wuo onyonyo Docker ọhụrụ.

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

2. Ọzọ, malite idezi faịlụ na ntuziaka ndị a:

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

Mpempe akwụkwọ dokerfile:

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

Ugbu a, ka anyị gaa na ntuziaka faịlụ:

Ahịrị nke mbụ na-agwa anyị na anyị na-ewu site na onyonyo Ubuntu. Ọ bụrụ na edoghị mkpado, kwuo 14:10 dịka ọmụmaatụ, a na-eji onyonyo kacha ọhụrụ sitere na Docker Hub.

N'ahịrị nke abụọ, anyị agbakwunyela aha na email nke onye kere ihe oyiyi. A ga-egbu ahịrị RUN abụọ na-esote n'ime akpa mgbe ị na-ewu ihe onyonyo a wee tinye Apache daemon wee kwughachi ụfọdụ ederede n'ime ibe weebụ apache ndabara.

Ahịrị EXPOSE ga-agwa akpa Docker ka ọ gee ntị na ọdụ ụgbọ mmiri 80, mana ọdụ ụgbọ mmiri agaghị adị n'èzí. Ahịrị ikpeazụ na-agwa akpa ka ọ rụọ ọrụ Apache n'ihu mgbe ebidochara akpa ahụ.

3. Ihe ikpeazụ anyị kwesịrị ime bụ ịmalite ịmepụta onyonyo site n'inye iwu dị n'okpuru ebe a, nke ga-emepụta ihe oyiyi Docker ọhụrụ aha ya bụ ubuntu-apache dabere na Dockerfile emebere na mbụ, dị ka egosiri na ya. ihe atụ a:

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

4. Mgbe Docker mechara onyonyo a, ị nwere ike depụta onyonyo niile dị wee chọpụta onyonyo gị site n'inye iwu a:

# docker images

Kwụpụ 2: Gbaa akpa na nweta Apache site na LAN

5. Iji na-agba ọsọ akpa ahụ na-aga n'ihu (na ndabere) wee nweta ọrụ ekpughere akpa (ọdụ ụgbọ mmiri) site na onye ọbịa ma ọ bụ igwe ọzọ dịpụrụ adịpụ na LAN gị, mee iwu dị n'okpuru na ngwa ngwa onye ọbịa gị:

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

N'ebe a, nhọrọ -d na-eme akpa ubuntu-apache n'azụ (dị ka daemon) yana nhọrọ -p maapụ ọdụ ụgbọ mmiri 80. n'ọdụ ụgbọ mmiri localhost gị 81. Enwere ike ịnweta ọrụ Apache na mpụga LAN site na ọdụ ụgbọ mmiri 81 naanị.

Iwu Netstat ga-enye gị echiche gbasara ọdụ ụgbọ mmiri onye ọbịa na-ege ntị.

Mgbe ebidochara akpa ahụ, ị nwekwara ike ịgba docker ps iwu ka ịlele ọkwa nke akpa na-agba ọsọ.

6. Enwere ike igosipụta ibe weebụ na onye ọbịa gị site na ahịrị iwu site na iji curl utility megide Adreesị IP igwe gị, localhost, ma ọ bụ docker net interface na ọdụ ụgbọ mmiri 81. Jiri akara iwu IP gosipụta adreesị IP netwọkụ.

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

7. Iji gaa na ibe weebụ akpa site na netwọk gị, mepee ihe nchọgharị na ebe dịpụrụ adịpụ wee jiri HTTP protocol, Adreesị IP nke igwe ebe akpa ahụ na-agba ọsọ, na-esote ọdụ ụgbọ mmiri 81 dị ka e gosiri na foto dị n'okpuru ebe a.

http://ip-address:81

8. Iji banye n'ime usoro usoro na-agba n'ime akpa, nye iwu a:

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

9. Iji kwụsị akpa okwu docker stop iwu na-esochi ID ma ọ bụ aha akpa.

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

10. Ọ bụrụ na ịchọrọ ịnye aha nkọwa maka akpa, jiri nhọrọ - aha dị ka egosiri na ihe atụ n'okpuru:

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

Ugbu a ị nwere ike idetu akpa ahụ maka ịmegharị (mmalite, nkwụsị, elu, stats, wdg) naanị site na iji aha ekenyere.

# docker stats my-www

Kwụpụ 3: Mepụta Faịlụ Nhazi Sistemu maka akpa Docker

11. Na CentOS/RHEL ị nwere ike ịmepụta faịlụ nhazi usoro ma jikwaa akpa ahụ dịka ị na-emekarị maka ọrụ mpaghara ọ bụla ọzọ.

Dịka ọmụmaatụ, mepụta faịlụ sistemụ ọhụrụ aha ya bụ, ka anyị kwuo, apache-docker.service site na iji iwu a:

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

Apache-docker.depụta faịlụ ọrụ:

[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. Mgbe ịmechara idezi faịlụ ahụ, mechie ya, bugharịa systemd daemon iji gosipụta mgbanwe wee malite akpa ahụ site na ịnye iwu ndị a:

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

Nke a bụ naanị ọmụmaatụ dị mfe nke ihe ị nwere ike iji Dockerfile dị mfe mee mana ị nwere ike ibu ụzọ wuo ụfọdụ ngwa ọkaibe mara mma nke ị nwere ike ịgba ọkụ n'ime obere sekọnd na iji obere akụrụngwa na mbọ.

Ọgụgụ ọzọ: