Zoeken op website

Hoe Apache in een Docker-container in Linux te installeren


Als je een Linux-systeembeheerder bent die ondersteuning biedt aan ontwikkelaars, is de kans groot dat je wel eens van Docker hebt gehoord. Als dat niet het geval is, zal deze softwareoplossing uw leven vanaf vandaag gemakkelijker maken door u te helpen de bedrijfskosten te verlagen en de implementatie te versnellen – naast andere voordelen.

Maar het is geen magie. Docker maakt als platform gebruik van containers: pakketten van een applicatie samen met alle tools die deze moet uitvoeren om verschillen tussen omgevingen te elimineren.

Met andere woorden: gecontaineriseerde software werkt en kan consistent worden beheerd, ongeacht waar deze is geïnstalleerd. Bovendien zijn containers veel eenvoudiger in te stellen, te starten, te stoppen en te onderhouden dan de goede oude virtuele machines.

Als je meer wilt weten over de verschillen tussen deze twee technologieën, biedt de officiële Docker-website een goede uitleg.

Ter illustratie leggen we in dit artikel uit hoe u Docker installeert op CentOS/RHEL, Rocky/Alma Linux en Debian/ Ubuntu en start een Apache 2.4 container vanuit Docker Hub.

We zullen het dan gebruiken om een eenvoudige webpagina vanuit onze homedirectory aan te bieden – allemaal zonder dat we een webserver op onze host hoeven te installeren.

Docker installeren op Linux

Laten we om te beginnen Docker installeren met behulp van de volgende curl-opdracht. Hiermee wordt een shellscript gedownload en uitgevoerd dat de Docker-repository aan ons systeem toevoegt en het pakket installeert.

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

Gebruik vervolgens de opdracht systemctl om de hoofdservice Docker te starten, schakel deze in tijdens het opnieuw opstarten en controleer de status ervan.

systemctl start docker
systemctl enable docker
systemctl status docker

Op dit punt kunnen we eenvoudigweg uitvoeren.

docker

om de lijst met beschikbare opdrachten te bekijken of om hulp te krijgen.

docker COMMAND --help
docker ps --help

zal ons vertellen hoe we de containers op ons systeem kunnen vermelden, terwijl

docker run --help

zal alle opties afdrukken die we kunnen gebruiken om een container te manipuleren.

Een Apache-container opzetten

Een van de verbazingwekkende dingen van het Docker ecosysteem is dat er tientallen standaardcontainers zijn die je eenvoudig kunt downloaden en gebruiken.

In het volgende voorbeeld zullen we een Apache 2.4 container met de naam tecmint-web instantiëren, los van de huidige terminal. We gebruiken een afbeelding met de naam httpd:2.4 van Docker Hub.

Ons plan is om verzoeken aan ons openbare IP-adres op poort 8080 te laten omleiden naar poort 80 op de container. In plaats van inhoud uit de container zelf weer te geven, bieden we ook een eenvoudige webpagina aan vanuit /home/user/website.

We doen dit door /home/user/website/ toe te wijzen aan de /usr/local/apache2/htdocs/ op de container. Houd er rekening mee dat u sudo moet gebruiken of moet inloggen als root om door te gaan, en laat de schuine strepen aan het einde van elke map niet weg.

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

Op dit punt zou onze Apache-container actief moeten zijn.

sudo docker ps

Laten we nu een eenvoudige webpagina maken met de naam docker.html in de map /home/user/website.

vi /home/user/website/docker.html

Voeg de volgende voorbeeld-HTML-inhoud toe aan het bestand.

<!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>

Ga vervolgens in uw browser naar Server-IP:8080/docker.html (waarbij Server-IP het openbare IP-adres van uw host is). U zou de pagina moeten zien die we eerder hebben gemaakt.

Als u dat wenst, kunt u de container nu stopzetten.

sudo docker stop tecmint-web

en verwijder deze:

sudo docker rm tecmint-web

Om het opschonen te voltooien, wilt u wellicht de afbeelding verwijderen die in de container is gebruikt (sla deze stap over als u van plan bent binnenkort andere Apache 2.4 containers te maken).

sudo docker image remove httpd:2.4

Merk op dat we bij alle bovenstaande stappen nooit de webserver op onze host hoefden te installeren.

Samenvatting

In dit artikel hebben we uitgelegd hoe u Docker installeert en een container manipuleert. Helaas zijn dit slechts de basisprincipes: er zijn hele cursussen, boeken en certificeringsexamens die dieper ingaan op Dockers (en containers in het algemeen).

Als je meer wilt weten over Docker, hebben we al een reeks van drie artikelen behandeld, waarin wordt uitgelegd hoe je Docker installeert, applicaties in containers uitvoert en automatisch docker-images bouwt met dockerfile.

  • Installeer Docker en leer basiscontainermanipulatie in CentOS en RHEL
  • Applicaties implementeren en uitvoeren in Docker-containers op CentOS/RHEL
  • Bouw en configureer automatisch Docker-images met Dockerfile op CentOS/RHEL
  • Docker-images, containers en volumes verwijderen

Beschouw dit als uw uitgangspunt en laat het ons weten als u vragen of opmerkingen heeft. Wij horen graag van u!