Ricerca nel sito web

Come installare Apache in un contenitore Docker in Linux


Se sei un amministratore di sistema Linux che fornisce supporto agli sviluppatori, è probabile che tu abbia sentito parlare di Docker. In caso contrario, questa soluzione software ti semplificherà la vita a partire da oggi aiutandoti a ridurre i costi operativi e ad accelerare le implementazioni, oltre ad altri vantaggi.

Ma non è magia. Docker come piattaforma sfrutta i contenitori: pacchetti di un'applicazione insieme a tutti gli strumenti necessari per l'esecuzione per eliminare le differenze tra gli ambienti.

In altre parole, il software containerizzato funzionerà e potrà essere gestito in modo coerente indipendentemente da dove è installato. Inoltre, i contenitori sono molto più facili da configurare, avviare, arrestare e mantenere rispetto alle buone vecchie macchine virtuali.

Se sei interessato a saperne di più sulle differenze tra queste due tecnologie, il sito web ufficiale di Docker fornisce un'ottima spiegazione.

Per illustrare, in questo articolo spiegheremo come installare Docker su CentOS/RHEL, Rocky/Alma Linux e Debian/ Ubuntu e avvia un contenitore Apache 2.4 da Docker Hub.

Lo useremo quindi per servire una semplice pagina web dalla nostra directory home, il tutto senza la necessità di installare un server web sul nostro host.

Installazione di Docker su Linux

Per iniziare, installiamo Docker utilizzando il seguente comando curl. Questo scaricherà ed eseguirà uno script di shell che aggiungerà il repository Docker al nostro sistema e installerà il pacchetto.

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

Successivamente, utilizza il comando systemctl per avviare il servizio Docker principale, abilitarlo all'avvio durante i riavvii e controllarne lo stato.

systemctl start docker
systemctl enable docker
systemctl status docker

A questo punto possiamo semplicemente eseguire.

docker

per visualizzare l'elenco dei comandi disponibili o per ottenere assistenza.

docker COMMAND --help
docker ps --help

ci dirà come elencare i contenitori presenti sul nostro sistema, considerando che

docker run --help

stamperà tutte le opzioni che possiamo usare per manipolare un contenitore.

Configurazione di un contenitore Apache

Una delle cose sorprendenti dell'ecosistema Docker è che ci sono decine di contenitori standard che puoi facilmente scaricare e utilizzare.

Nell'esempio seguente, istanziaremo un contenitore Apache 2.4 denominato tecmint-web, staccato dal terminale corrente. Utilizzeremo un'immagine chiamata httpd:2.4 da Docker Hub.

Il nostro piano prevede che le richieste effettuate al nostro indirizzo IP pubblico sulla porta 8080 vengano reindirizzate alla porta 80 sul contenitore. Inoltre, invece di servire il contenuto dal contenitore stesso, serviremo una semplice pagina web da /home/utente/sito web.

Lo facciamo mappando /home/user/website/ su /usr/local/apache2/htdocs/ sul contenitore. Tieni presente che dovrai utilizzare sudo o accedere come root per procedere e non omettere le barre alla fine di ciascuna directory.

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

A questo punto, il nostro contenitore Apache dovrebbe essere attivo e funzionante.

sudo docker ps

Ora creiamo una semplice pagina web denominata docker.html all'interno della directory /home/user/website.

vi /home/user/website/docker.html

Aggiungi il seguente contenuto HTML di esempio al file.

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

Successivamente, punta il browser su Server-IP:8080/docker.html (dove Server-IP è l'indirizzo IP pubblico del tuo host). Ti dovrebbe essere presentata la pagina che abbiamo creato in precedenza.

Se lo desideri, ora puoi fermare il contenitore.

sudo docker stop tecmint-web

e rimuoverlo:

sudo docker rm tecmint-web

Per completare la pulizia, potresti voler eliminare l'immagine utilizzata nel contenitore (ometti questo passaggio se hai intenzione di creare presto altri contenitori Apache 2.4).

sudo docker image remove httpd:2.4

Tieni presente che in tutti i passaggi precedenti non abbiamo mai dovuto installare il server web sul nostro host.

Riepilogo

In questo articolo abbiamo spiegato come installare Docker e manipolare un contenitore. Sfortunatamente, queste sono solo le nozioni di base: ci sono interi corsi, libri ed esami di certificazione che trattano Docker (e i container in generale) in modo più approfondito.

Se vuoi saperne di più su Docker, abbiamo già trattato una serie di 3 articoli che spiegano come installare Docker, eseguire applicazioni in contenitori e creare automaticamente immagini docker con dockerfile.

  • Installa Docker e scopri la manipolazione di base dei contenitori in CentOS e RHEL
  • Come distribuire ed eseguire applicazioni in contenitori Docker su CentOS/RHEL
  • Crea e configura automaticamente immagini Docker con Dockerfile su CentOS/RHEL
  • Come rimuovere immagini, contenitori e volumi Docker

Considera questo come il tuo punto di partenza e facci sapere se hai domande o commenti: non vediamo l'ora di sentire la tua opinione!