Sådan opsættes en simpel Apache-webserver i en Docker-container


Hvis du er en Linux-systemadministrator, der yder support til udviklere, er chancerne for, at du har hørt om Docker. Hvis ikke, vil denne softwareløsning gøre dit liv lettere i dag ved at hjælpe dig med at reducere driftsomkostningerne og fremskynde implementeringen - blandt andre fordele.

Men det er ikke magisk. Docker som platform udnytter containere - pakker til en applikation sammen med alle de værktøjer, den har brug for at køre for at eliminere forskelle mellem miljøer.

Med andre ord fungerer containeriseret software og kan administreres konsekvent, uanset hvor den er installeret. Derudover er containere meget lettere at opsætte, starte, stoppe og vedligeholde end gode gamle virtuelle maskiner. Hvis du er interesseret i at vide mere om forskellene mellem disse to teknologier, giver det officielle Docker-websted en god forklaring.

For at illustrere forklarer vi i denne artikel, hvordan du installerer Docker på CentOS 7 og Ubuntu 16.04 og spinder en Apache 2.4-container op fra Docker Hub.

Vi bruger den derefter til at betjene en simpel webside fra vores hjemmekatalog - alt sammen uden behov for at installere en webserver på vores vært.

Installation af Docker på CentOS og Ubuntu

Lad os begynde med at installere Docker ved hjælp af følgende kommando. Dette downloader og kører et shell-script, der tilføjer Docker-lageret til vores system og installerer pakken.

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

Brug derefter systemctl-kommandoen til at starte den vigtigste Docker-tjeneste og kontrollere dens status.

# systemctl start docker
# systemctl status docker

På dette tidspunkt kan vi simpelthen udføre.

# docker

for at se listen over tilgængelige kommandoer eller for at få hjælp.

# docker COMMAND --help
# docker ps --help

vil fortælle os, hvordan vi viser containere, der findes på vores system, mens

# docker run --help

vil udskrive alle de muligheder, vi kan bruge til at manipulere en container.

Opsætning af en Apache-container

En af de fantastiske ting ved Docker-økosystemet er, at der er snesevis af standardcontainere, som du nemt kan downloade og bruge. I det følgende eksempel vil vi starte en Apache 2.4-container med navnet tecmint-web, løsrevet fra den nuværende terminal. Vi bruger et billede kaldet httpd: 2.4 fra Docker Hub.

Vores plan er, at anmodninger til vores offentlige IP-adresse på port 8080 omdirigeres til port 80 på containeren. I stedet for at servere indhold fra selve containeren vil vi også servere en simpel webside fra/home/user/website.

Vi gør dette ved at kortlægge/home/user/website/på/usr/local/apache2/htdocs/på containeren. Bemærk, at du bliver nødt til at bruge sudo eller logge ind som root for at fortsætte, og undlad at skrå skråstregene i slutningen af hver mappe.

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

På dette tidspunkt skal vores Apache-container være i gang.

$ sudo docker ps

Lad os nu oprette en simpel webside med navnet docker.html inde i/hjem/bruger/webstedsmappe.

# vi /home/user/website/docker.html

Tilføj følgende HTML-eksempeleksempel til 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>

Ret derefter din browser til AAA.BBB.CCC.DDD: 8080/docker.html (hvor AAA.BBB.CCC.DDD er din værts offentlige IP-adresse). Du skal blive præsenteret for den side, vi oprettede tidligere.

Hvis du ønsker det, kan du nu stoppe containeren.

$ sudo docker stop tecmint-web

og fjern det:

$ sudo docker rm tecmint-web

For at afslutte oprydningen kan du slette det billede, der blev brugt i containeren (udelad dette trin, hvis du planlægger snart at oprette andre Apache 2.4-containere).

$ sudo docker image remove httpd:2.4

Bemærk, at vi i alle de ovennævnte trin aldrig var nødt til at installere webserveren på vores vært.

I denne artikel forklarede vi, hvordan du installerer Docker og manipulerer en container. Desværre er dette kun det grundlæggende - der er hele kurser, bøger og certificeringseksaminer, der dækker dockere (og containere generelt) mere i dybden.

Hvis du vil lære mere om Docker, har vi allerede dækket en serie med 3 artikler, der forklarer, hvordan du installerer Docker, kører applikationer i containere og automatisk bygger dockerbilleder med dockerfil.

  1. Installer Docker og Learn Basic Container Manipulation i CentOS og RHEL 7/6
  2. Sådan distribueres og køres applikationer i Docker-containere på CentOS/RHEL 7/6
  3. Byg og konfigurer automatisk Docker-billeder automatisk med Dockerfile på CentOS/RHEL 7/6
  4. Sådan fjernes Docker-billeder, containere og volumener

Overvej dette som dit udgangspunkt, og lad os vide, hvis du har spørgsmål eller kommentarer - vi ser frem til at høre fra dig!