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!