Bii o ṣe le Ṣaifọwọyi ati Tunto Awọn aworan Docker Aṣa pẹlu Dockerfile - Apá 3
Ikẹkọ yii yoo ni idojukọ lori bii o ṣe le kọ aworan Docker aṣa ti o da lori Ubuntu pẹlu iṣẹ Apache ti a fi sii. Gbogbo ilana yoo jẹ adaṣe nipa lilo Dockerfile kan.
Awọn aworan Docker le jẹ itumọ laifọwọyi lati awọn faili ọrọ, ti a npè ni Dockerfiles. Faili Docker kan ni awọn ilana paṣẹ-nipasẹ-Igbese tabi awọn ofin ti a lo lati ṣẹda ati tunto aworan Docker kan.
- Fi Docker sori ati Kọ ẹkọ Idari Apoti Docker - Apá 1
- Firanṣẹ ati Ṣiṣe Awọn ohun elo labẹ Awọn apoti Docker - Apá 2
Ni ipilẹṣẹ, faili Docker kan ni awọn itọnisọna pupọ lati le kọ ati tunto apoti e kan pato ti o da lori awọn ibeere rẹ. Awọn itọnisọna wọnyi ni lilo julọ, diẹ ninu wọn jẹ dandan:
-
LATI = Dandan bi itọnisọna akọkọ ninu faili Docker kan. Awọn itọnisọna Docker lati fa aworan ipilẹ lati eyiti o n kọ aworan tuntun. Lo aami kan lati ṣalaye aworan gangan lati eyiti o n kọ:
Ex: FROM ubuntu:20.04
-
MIMỌNTA
= Onkọwe ti aworan kikọ -
RUN
= Itọsọna yii le ṣee lo lori awọn ila lọpọlọpọ ati ṣiṣe awọn aṣẹ eyikeyi lẹhin ti a ti ṣẹda aworan Docker kan. -
CMD
= Ṣiṣe eyikeyi aṣẹ nigbati aworan Docker ti bẹrẹ. Lo itọnisọna CMD kan ṣoṣo ni Dockerfile. -
ENTRYPOINT
= Kanna bi CMD ṣugbọn o lo bi aṣẹ akọkọ fun aworan naa. -
Ifihan
= Nfun eiyan lati gbọ lori awọn ibudo nẹtiwọọki nigbati o nṣiṣẹ. Ko de ọdọ awọn ibudo apo eiyan lati ọdọ alejo nipasẹ aiyipada. -
ENV
= Ṣeto awọn oniyipada ayika ayika apoti. -
ADD
= Daakọ awọn orisun (awọn faili, awọn ilana, tabi awọn faili lati URL).
Igbesẹ 1: Ṣiṣẹda tabi Kikọ ibi ipamọ Dockerfile
1. Ni akọkọ, jẹ ki a ṣẹda iru awọn ibi ipamọ Dockerfile lati le tun lo awọn faili ni ọjọ iwaju lati ṣẹda awọn aworan miiran. Ṣe itọsọna ofo ni ibikan ni /var
ipin nibi ti a yoo ṣẹda faili pẹlu awọn itọnisọna ti yoo lo lati kọ aworan Docker tuntun.
# mkdir -p /var/docker/ubuntu/apache # touch /var/docker/ubuntu/apache/Dockerfile
2. Itele, bẹrẹ ṣiṣatunkọ faili pẹlu awọn itọnisọna wọnyi:
# vi /var/docker/ubuntu/apache/Dockerfile
Dokerfile ti yọ:
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
Bayi, jẹ ki a lọ nipasẹ awọn itọnisọna faili:
Laini akọkọ sọ fun wa pe a n kọ lati aworan Ubuntu. Ti ko ba fi ami si silẹ, sọ fun 14:10 fun apẹẹrẹ, aworan tuntun lati Docker Hub lo.
Lori laini keji, a ti ṣafikun orukọ ati imeeli ti ẹlẹda aworan. Awọn ila RUN meji ti nbọ ni yoo pa ni apoti nigba kikọ aworan naa ati pe yoo fi daemon Apache sii ati iwoyi ọrọ diẹ si oju-iwe wẹẹbu apache aiyipada.
Laini ifihan yoo sọ fun ohun elo Docker lati tẹtisi lori ibudo 80, ṣugbọn ibudo ko ni wa si ita. Laini ikẹhin kọ fun apo eiyan lati ṣiṣẹ iṣẹ Apache ni iwaju lẹhin ti apoti naa ti bẹrẹ.
3. Ohun ti o kẹhin ti a nilo lati ṣe ni lati bẹrẹ ṣiṣẹda aworan naa nipasẹ ipinfunni aṣẹ isalẹ, eyi ti yoo ṣẹda ni agbegbe ti aworan Docker tuntun ti a npè ni ubuntu-apache
da lori Dockerfile ti a ṣẹda tẹlẹ, bi a ṣe han ninu apẹẹrẹ yii:
# docker build -t ubuntu-apache /var/docker/ubuntu/apache/
4. Lẹhin ti a ti ṣẹda aworan nipasẹ Docker, o le ṣe atokọ gbogbo awọn aworan to wa ki o ṣe idanimọ aworan rẹ nipa fifun aṣẹ wọnyi:
# docker images
Igbesẹ 2: Ṣiṣe Apoti ati Apamọ Wiwọle lati LAN
5. Lati le ṣiṣẹ apoti naa nigbagbogbo (ni abẹlẹ) ati wọle si awọn iṣẹ ti o farahan eiyan (awọn ebute oko oju omi) lati ọdọ olugbalejo tabi ẹrọ miiran latọna jijin ninu LAN rẹ, ṣiṣe aṣẹ ti o wa ni isalẹ lori iyara ebute ebute rẹ:
# docker run -d -p 81:80 ubuntu-apache
Nibi, aṣayan -d
n ṣiṣẹ ni ubuntu-apache
apoti ni abẹlẹ (bi daemon) ati aṣayan -p
awọn maapu ibudo apoti 80 si ibudo agbegbe ti agbegbe rẹ 81. Iwọle LAN ti ita si iṣẹ Apache ni a le de nipasẹ ibudo 81 nikan.
Netstat aṣẹ yoo fun ọ ni imọran nipa kini awọn ibudo ti ogun n tẹtisi.
Lẹhin ti apoti eiyan ti bẹrẹ, o tun le ṣiṣẹ docker ps
aṣẹ lati wo ipo ti apoti ti nṣiṣẹ.
6. Oju-iwe wẹẹbu naa le ṣe afihan lori agbalejo rẹ lati laini aṣẹ pẹlu lilo iwuwọ ọmọ-ọwọ si Adirẹsi IP ẹrọ rẹ, localhost, tabi doft net interface lori ibudo 81. Lo laini aṣẹ IP lati ṣe afihan awọn adirẹsi IP nẹtiwọọki.
# ip addr [List nework interfaces] # curl ip-address:81 [System Docker IP Address] # curl localhost:81 [Localhost]
7. Lati ṣabẹwo si oju opo wẹẹbu eiyan lati nẹtiwọọki rẹ, ṣii ẹrọ lilọ kiri lori ayelujara ni ipo latọna jijin ki o lo ilana HTTP, Adirẹsi IP ti ẹrọ nibiti apoti naa ti n ṣiṣẹ, tẹle pẹlu ibudo 81 bi a ti ṣe apejuwe lori aworan isalẹ.
http://ip-address:81
8. Lati gba inu kini awọn ilana wo ni o ṣiṣẹ inu apo eiyan naa aṣẹ wọnyi:
# docker ps # docker top <name or ID of the container>
9. Lati da oro eiyan duro
# docker stop <name or ID of the container> # docker ps
10. Ni ọran ti o fẹ fi orukọ apejuwe kan fun eiyan naa lo aṣayan --name
bi o ṣe han ninu apẹẹrẹ isalẹ:
# docker run --name my-www -d -p 81:80 ubuntu-apache # docker ps
Bayi o le tọka apo eiyan fun ifọwọyi (bẹrẹ, da, oke, awọn iṣiro, ati bẹbẹ lọ) nikan nipa lilo orukọ ti a yàn.
# docker stats my-www
Igbesẹ 3: Ṣẹda Faili Iṣeto-jakejado-Eto fun Apoti Docker
11. Lori CentOS/RHEL o le ṣẹda faili iṣeto eto kan ati ṣakoso apo eiyan bi o ṣe deede fun eyikeyi iṣẹ agbegbe miiran.
Fun apeere, ṣẹda faili eto tuntun ti a npè ni, jẹ ki a sọ, apache-docker.service
lilo pipaṣẹ wọnyi:
# vi /etc/systemd/system/apache-docker.service
faili apache-docker.service ti yọ:
[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. Lẹhin ti o pari ṣiṣatunkọ faili naa, pa a, tun gbee daemon ti eto lati ṣe afihan awọn ayipada ati bẹrẹ apoti nipasẹ fifun awọn ofin wọnyi:
# systemctl daemon-reload # systemctl start apache-docker.service # systemctl status apache-docker.service
Eyi jẹ apẹẹrẹ ti o rọrun ti ohun ti o le ṣe pẹlu Dockerfile ti o rọrun ṣugbọn o le kọ-kọ diẹ ninu awọn ohun elo ti o ni imọran ti o le ṣe ina-soke ni ọrọ kan ti awọn aaya pẹlu awọn orisun kekere ati igbiyanju.
Siwaju sii kika: