Kuinka luoda ja määrittää mukautettuja Docker-kuvia automaattisesti Dockerfilen avulla - Osa 3
Tämä opetusohjelma keskittyy mukautetun Docker-kuvan luomiseen Ubuntuun ja Apache-palveluun asennettuna. Koko prosessi automatisoidaan Docker-tiedoston avulla.
Docker-kuvia voidaan rakentaa automaattisesti tekstitiedostoista, joiden nimi on Dockerfiles. Docker-tiedosto sisältää vaiheittaiset ohjeet tai komennot, joita käytetään Docker-kuvan luomiseen ja määrittämiseen.
Vaatimukset
- Asenna Docker and Learn Docker Container Manipulation – Osa 1
- Ota käyttöön ja suorita sovelluksia Docker Containersissa – Osa 2
Pohjimmiltaan Docker-tiedosto sisältää erilaisia ohjeita tietyn säilön rakentamiseksi ja määrittämiseksi tarpeidesi mukaan. Seuraavat ohjeet ovat eniten käytettyjä, joista osa on pakollisia:
FROM
=Pakollinen Docker-tiedoston ensimmäisenä ohjeena. Kehottaa Dockeria ottamaan peruskuvan, josta olet rakentamassa uutta kuvaa. Käytä tagia määrittääksesi tarkan kuvan, josta rakennat:
Ex: FROM ubuntu:20.04
MAINTAINER
=Rakennuskuvan tekijäRUN
=Tätä ohjetta voidaan käyttää useilla riveillä ja se suorittaa kaikki komennot Docker-kuvan luomisen jälkeen.CMD
=Suorita mikä tahansa komento, kun Docker-näköistiedosto käynnistetään. Käytä vain yhtä CMD-ohjetta Docker-tiedostossa.ENTRYPOINT
=Sama kuin CMD, mutta sitä käytetään kuvan pääkäskynä.EXPOSE
=Ohjaa säilöä kuuntelemaan verkkoportteja, kun se on käynnissä. Konttiportit eivät ole oletusarvoisesti tavoitettavissa isännältä.ENV
=Aseta säilön ympäristömuuttujat.LISÄÄ
=Kopioi resurssit (tiedostot, hakemistot tai tiedostot URL-osoitteista).
Vaihe 1: Dockerfile-arkiston luominen tai kirjoittaminen
1. Luodaan ensin jonkinlaisia Dockerfile-tietovarastoja, jotta tiedostoja voidaan käyttää uudelleen muiden kuvien luomiseen. Tee tyhjä hakemisto jonnekin /var
-osioon, johon luomme tiedoston ohjeineen, joita käytetään uuden Docker-kuvan rakentamiseen.
mkdir -p /var/docker/ubuntu/apache
touch /var/docker/ubuntu/apache/Dockerfile
2. Aloita seuraavaksi tiedoston muokkaaminen seuraavien ohjeiden mukaisesti:
vi /var/docker/ubuntu/apache/Dockerfile
Dokerfile-ote:
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
Käydään nyt tiedostoohjeet läpi:
Ensimmäinen rivi kertoo, että rakennamme Ubuntu-kuvasta. Jos tunnistetta ei lähetetä, esimerkiksi 14:10 käytetään Docker Hubin viimeisintä kuvaa.
Toiselle riville olemme lisänneet kuvan luojan nimen ja sähköpostiosoitteen. Seuraavat kaksi RUN-riviä suoritetaan säilössä, kun kuvaa rakennetaan, ja ne asentavat Apache-daemonin ja echo tekstin apachen oletussivulle. .
EXPOSE-rivi ohjeistaa Dokkerin-konttia kuuntelemaan porttia 80, mutta portti ei ole ulkopuolisten käytettävissä. Viimeinen rivi ohjeistaa säilöä suorittamaan Apache-palvelun etualalla, kun säilö on käynnistetty.
3. Viimeinen asia, joka meidän on tehtävä, on aloittaa kuvan luominen antamalla alla oleva komento, joka luo paikallisesti uuden Docker-kuvan nimeltä ubuntu-apache
, joka perustuu Aiemmin luotu Dockerfile, kuten tässä esimerkissä näkyy:
docker build -t ubuntu-apache /var/docker/ubuntu/apache/
4. Kun Docker on luonut kuvan, voit luetella kaikki saatavilla olevat kuvat ja tunnistaa kuvasi antamalla seuraavan komennon:
docker images
Vaihe 2: Suorita Container ja käytä Apachea lähiverkosta
5. Jos haluat käyttää säilöä jatkuvasti (taustalla) ja käyttää säilön paljastettuja palveluita (portteja) isännästä tai muusta lähiverkon etäkoneesta, suorita alla oleva komento isäntäpäätteen kehotteessa :
docker run -d -p 81:80 ubuntu-apache
Tässä -d
-vaihtoehto ajaa ubuntu-apache
-säilöä taustalla (daemonina) ja -p
-vaihtoehto kartoittaa konttiportin 80 paikallispalvelinporttiin 81. Lähiverkon ulkopuolella Apache-palveluun pääsee vain portin 81 kautta.
Netstat-komento antaa sinulle käsityksen siitä, mitä portteja isäntä kuuntelee.
Kun säilö on käynnistetty, voit myös suorittaa docker ps
-komennon nähdäksesi käynnissä olevan säilön tilan.
6. Verkkosivu voidaan näyttää isännässäsi komentoriviltä käyttämällä curl -apuohjelmaa koneen IP-osoitteen, paikallispalvelimen tai Docker-verkkoliittymän kanssa portissa 81. Käytä IP-komentoa rivi näyttää verkkoliitännän IP-osoitteet.
ip addr [List nework interfaces]
curl ip-address:81 [System Docker IP Address]
curl localhost:81 [Localhost]
7. Jos haluat vierailla säilön verkkosivulla verkosta, avaa selain etäpaikassa ja käytä HTTP-protokollaa, sen koneen IP-osoitetta, jossa säilö on käynnissä, ja porttia 81, kuten kuvassa näkyy kuvan alla.
http://ip-address:81
8. Saat tietoja säilön sisällä käynnissä olevista prosesseista antamalla seuraava komento:
docker ps
docker top <name or ID of the container>
9. Säilön lopettaminen antaa docker stop
-komennon, jota seuraa säilön tunnus tai nimi.
docker stop <name or ID of the container>
docker ps
10. Jos haluat antaa säilölle kuvaavan nimen, käytä --name
-vaihtoehtoa alla olevan esimerkin mukaisesti:
docker run --name my-www -d -p 81:80 ubuntu-apache
docker ps
Nyt voit viitata säilöön käsittelyä varten (aloitus, lopetus, alkuun, tilastot jne.) vain käyttämällä määritettyä nimeä.
docker stats my-www
Vaihe 3: Luo järjestelmän laajuinen määritystiedosto Docker Containerille
11. CentOS/RHEL -palvelussa voit luoda systemd-määritystiedoston ja hallita säilöä kuten tavallisesti minkä tahansa muun paikallisen palvelun kohdalla.
Luo esimerkiksi uusi systemd-tiedosto, jonka nimi on esimerkiksi apache-docker.service
seuraavalla komennolla:
vi /etc/systemd/system/apache-docker.service
apache-docker.service-tiedostoote:
[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. Kun olet lopettanut tiedoston muokkaamisen, sulje se, lataa systemd-daemon uudelleen muutosten mukaan ja käynnistä säilö antamalla seuraavat komennot:
systemctl daemon-reload
systemctl start apache-docker.service
systemctl status apache-docker.service
Tämä oli vain yksinkertainen esimerkki siitä, mitä voit tehdä yksinkertaisella Docker-tiedostolla, mutta voit rakentaa valmiiksi melko kehittyneitä sovelluksia, jotka voit käynnistää muutamassa sekunnissa minimaalisilla resursseilla ja vaivalla.
Lisätietoja: