Hvordan installere Apache i en Docker Container i Linux


Hvis du er en Linux-systemadministrator som gir støtte for utviklere, er sjansen stor for at du har hørt om Docker. Hvis ikke, vil denne programvareløsningen gjøre livet ditt enklere fra og med i dag ved å hjelpe deg med å redusere driftskostnadene og akselerere distribusjonen – blant andre fordeler.

Men det er ikke magi. Docker som plattform utnytter containere – pakker av en applikasjon sammen med alle verktøyene den trenger for å kjøre for å eliminere forskjeller mellom miljøer.

Med andre ord, containerisert programvare vil fungere og kan administreres konsekvent uavhengig av hvor den er installert. I tillegg er containere mye enklere å sette opp, starte, stoppe og vedlikeholde enn gode gamle virtuelle maskiner.

Hvis du er interessert i å vite mer om forskjellene mellom disse to teknologiene, gir den offisielle Docker-nettsiden en god forklaring.

For å illustrere, i denne artikkelen vil vi forklare hvordan du installerer DockerCentOS/RHEL, Rocky/Alma Linux og Debian/ Ubuntu, og snurr opp en Apache 2.4-beholder fra Docker Hub.

Vi vil da bruke den til å betjene en enkel nettside fra hjemmekatalogen vår – alt uten å måtte installere en webserver på verten vår.

Installerer Docker på Linux

For å begynne, la oss installere Docker ved å bruke følgende curl-kommando. Dette vil laste ned og kjøre et shell-skript som vil legge til Docker-depotet til systemet vårt og installere pakken.

curl -fsSL https://get.docker.com | sh

Deretter bruker du systemctl-kommandoen til å starte Docker-hovedtjenesten, aktivere den til å starte under omstart og sjekke statusen.

systemctl start docker
systemctl enable docker
systemctl status docker

På dette tidspunktet kan vi ganske enkelt utføre.

docker

for å se listen over tilgjengelige kommandoer eller for å få hjelp.

docker COMMAND --help
docker ps --help

vil fortelle oss hvordan vi skal liste opp containere som er tilstede på systemet vårt, mens

docker run --help

vil skrive ut alle alternativene vi kan bruke for å manipulere en beholder.

Sette opp en Apache-beholder

En av de fantastiske tingene med Docker-økosystemet er at det er titalls standardbeholdere som du enkelt kan laste ned og bruke.

I det følgende eksempelet vil vi instansiere en Apache 2.4-beholder kalt tecmint-web, løsrevet fra gjeldende terminal. Vi vil bruke et bilde kalt httpd:2.4 fra Docker Hub.

Planen vår er å få forespørsler til vår offentlige IP-adresse på port 8080 omdirigert til port 80 på containeren. I stedet for å vise innhold fra selve beholderen, vil vi også vise en enkel nettside fra /home/user/website.

Vi gjør dette ved å kartlegge /home/user/website//usr/local/apache2/htdocs/ på beholderen. Merk at du må bruke sudo eller logge på som root for å fortsette, og ikke utelate skråstrekene på slutten av hver katalog.

sudo docker run -dit --name tecmint-web -p 8080:80 -v /home/user/website/:/usr/local/apache2/htdocs/ httpd:2.4

På dette tidspunktet skal Apache-beholderen vår være i gang.

sudo docker ps

La oss nå lage en enkel nettside med navnet docker.html i /home/user/website-katalogen.

vi /home/user/website/docker.html

Legg til følgende eksempel på HTML-innhold i filen.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Learn Docker at linux-console.net</title>
</head>
<body>
    <h1>Learn Docker With Us</h1>   
</body>
</html>

Deretter peker du på Server-IP:8080/docker.html (der Server-IP er vertens offentlige IP-adresse). Du bør bli presentert med siden vi opprettet tidligere.

Hvis du ønsker det, kan du nå stoppe beholderen.

sudo docker stop tecmint-web

og fjern den:

sudo docker rm tecmint-web

For å fullføre oppryddingen kan det være lurt å slette bildet som ble brukt i beholderen (utelat dette trinnet hvis du planlegger å lage andre Apache 2.4-beholdere snart).

sudo docker image remove httpd:2.4

Merk at i alle trinnene ovenfor måtte vi aldri installere webserveren på verten vår.

Sammendrag

I denne artikkelen forklarte vi hvordan du installerer Docker og manipulerer en beholder. Dessverre er dette bare det grunnleggende – det er hele kurs, bøker og sertifiseringseksamener som dekker Dockers (og containere generelt) mer i dybden.

Hvis du vil lære mer om Docker, har vi allerede dekket en serie med tre artikler, som forklarer hvordan du installerer Docker, kjører applikasjoner i containere og automatisk bygger docker-bilder med dockerfile.

  • Installer Docker og lær grunnleggende containermanipulasjon i CentOS og RHEL
  • Hvordan distribuere og kjøre applikasjoner i Docker-beholdere på CentOS/RHEL
  • Bygg og konfigurer Docker-bilder automatisk med Dockerfile på CentOS/RHEL
  • Hvordan fjerne Docker-bilder, containere og volumer

Se på dette som ditt utgangspunkt og gi oss beskjed hvis du har spørsmål eller kommentarer – vi ser frem til å høre fra deg!