![Slik laster du ned Torrent-filer i 2020 (arbeidsmetoder)](/f/533daaf167c8aeab80f7e613933e6540.jpg?width=100&height=100)
Denne opplæringen vil konsentrere seg om hvordan du bygger et tilpasset Docker -bilde basert på Ubuntu med Apache tjenesten er installert. Hele prosessen vil bli automatisert ved hjelp av en Dockerfile.
Docker -bilder kan automatisk bygges fra tekstfiler, navngitt Dockerfiles. En Docker-fil inneholder trinnvise instruksjoner eller kommandoer som brukes til å lage og konfigurere et Docker-bilde.
I utgangspunktet inneholder en Docker -fil forskjellige instruksjoner for å bygge og konfigurere en bestemt beholder basert på dine krav. Følgende instruksjoner er de mest brukte, noen av dem er obligatoriske:
FRA
= Obligatorisk som den første instruksjonen i en Docker -fil. Instruerer Docker om å trekke basisbildet du bygger det nye bildet fra. Bruk en tag for å angi det nøyaktige bildet du bygger fra:Eks: FRA ubuntu: 20.04.
VEDLIKEHOLDER
= Forfatter av bygningsbildetLØPE
= Denne instruksjonen kan brukes på flere linjer og kjører alle kommandoer etter at et Docker -bilde er opprettet.
CMD
= Kjør hvilken som helst kommando når Docker -bildet startes. Bruk bare én CMD -instruksjon i en Dockerfile.INNGANGSPUNKT
= Samme som CMD, men brukes som hovedkommando for bildet.AVDEKKE
= Instruerer beholderen om å lytte på nettverksportene når den kjøres. Containerportene er ikke tilgjengelige fra verten som standard.ENV
= Angi beholdermiljøvariabler.LEGG TIL
= Kopier ressurser (filer, kataloger eller filer fra nettadresser).1. La oss først lage en slags Dockerfile lagre for å gjenbruke filer i fremtiden for å lage andre bilder. Lag en tom katalog et sted i /var
partisjon der vi skal lage filen med instruksjonene som skal brukes til å bygge det nylig Docker -bildet.
# mkdir -p/var/docker/ubuntu/apache. # touch/var/docker/ubuntu/apache/Dockerfile.
2. Deretter begynner du å redigere filen med følgende instruksjoner:
# vi/var/docker/ubuntu/apache/Dockerfile.
Utdrag av Dokerfile:
FRA ubuntu. VEDLIKEHOLDER ditt navn <[e -postbeskyttet]> RUN apt -get -y install apache2. RUN ekko "Hei Apache -server på Ubuntu Docker"> /var/www/html/index.html. UTSTILL 80. CMD/usr/sbin/apache2ctl -D FOREGROUND.
La oss gå gjennom filinstruksjonene:
Den første linjen forteller oss at vi bygger fra en Ubuntu bilde. Si ingen merkelapp 14:10 for eksempel det siste bildet fra Docker Hub benyttes.
På den andre linjen har vi lagt til Navn og e -post av bildeskaperen. De to neste LØPE linjer vil bli utført i beholderen når du bygger bildet og installeres Apache demon og ekko litt tekst til standard apache -webside.
De AVDEKKE linje vil instruere Docker beholder for å lytte på port 80, men porten vil ikke være tilgjengelig for utsiden. Den siste linjen instruerer beholderen om å kjøre Apache -tjenesten i forgrunnen etter at beholderen er startet.
3. Det siste vi må gjøre er å begynne å lage bildet ved å sende kommandoen nedenfor, som lokalt vil lage et nytt Docker -bilde med navnet ubuntu-apache
basert på Dockerfilen som ble opprettet tidligere, som vist i dette eksemplet:
# docker build -t ubuntu -apache/var/docker/ubuntu/apache/
4. Etter at bildet er laget av Docker, kan du liste opp alle tilgjengelige bilder og identifisere bildet ditt ved å utstede følgende kommando:
# docker -bilder.
5. For å kjøre beholderen kontinuerlig (i bakgrunnen) og få tilgang til containereksponerte tjenester (porter) fra verten eller en annen ekstern maskin i ditt LAN, kjører du kommandoen nedenfor på vertsterminalen spørsmål:
# docker run -d -p 81:80 ubuntu -apache.
Her, den -d
alternativet kjører ubuntu-apache
beholder i bakgrunnen (som en demon) og -s
alternativet kartlegger containerporten 80 til din lokale vertsport 81. Utenfor LAN -tilgang til Apache -tjenesten kan nås via porten 81 bare.
Netstat -kommandoen vil gi deg en ide om hvilke porter verten lytter til.
Etter at beholderen er startet, kan du også kjøre docker ps
kommando for å vise statusen til den kjørende beholderen.
6. Nettsiden kan vises på verten din fra kommandolinjen ved å bruke krøll verktøy mot maskinens IP -adresse, localhost eller docker -nettgrensesnitt på port 81. Bruk IP -kommando linje for å vise nettverksgrensesnittets IP -adresser.
# ip addr [Liste over nework -grensesnitt] # curl ip-address: 81 [System Docker IP Address] # curl localhost: 81 [Localhost]
7. For å besøke beholderens webside fra nettverket ditt, åpner du en nettleser på et eksternt sted og bruker HTTP -protokoll, IP -adressen til maskinen der beholderen kjører, etterfulgt av port 81 som vist nedenfor bilde.
http://ip-address: 81.
8. For å få innsikt i hvilke prosesser som kjører inne i beholderen, utfører følgende kommando:
# docker ps. # docker topp
9. For å stoppe beholderproblemet docker stopp
kommando etterfulgt av beholder -ID eller navn.
# dokkerstopp# docker ps.
10. Hvis du vil tildele et beskrivende navn for beholderen, bruker du --Navn
alternativet som vist i eksempelet nedenfor:
# docker run --name my -www -d -p 81:80 ubuntu -apache. # docker ps.
Nå kan du bare referere til beholderen for manipulasjon (start, stopp, topp, statistikk, osv.) Bare ved å bruke det tildelte navnet.
# docker stats my-www.
11. På CentOS/RHEL du kan lage en systemd konfigurasjonsfil og administrer beholderen som du vanligvis gjør for andre lokale tjenester.
For eksempel, lag en ny systemd -fil med navnet, la oss si, apache-docker.service
ved å bruke følgende kommando:
# vi /etc/systemd/system/apache-docker.service.
apache-docker.service filutdrag:
[Enhet] Beskrivelse = apache -beholder. Krever = docker.service. After = docker.service [Service] Start på nytt = alltid. ExecStart =/usr/bin/docker start -a min -www. ExecStop =/usr/bin/docker stop -t 2 my -www [Installer] WantedBy = local.target.
12. Etter at du er ferdig med å redigere filen, lukker du den, laster inn systemd -demonen for å gjenspeile endringer og starter beholderen ved å utstede følgende kommandoer:
# systemctl daemon-reload. # systemctl starter apache-docker.service. # systemctl status apache-docker.service.
Dette var bare et enkelt eksempel på hva du kan gjøre med en enkel Dockerfile men du kan forhåndsbygge noen ganske sofistikerte applikasjoner som du kan starte opp på bare noen få sekunder med minimale ressurser og krefter.
Videre lesning: