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 Docker på CentOS/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/ på /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!