Come configurare un contenitore Docker Apache

Se sei nuovo di Docker e dei container, allora configurare il Contenitore Docker di Apache è un ottimo punto di partenza. Creare un’applicazione su Docker è un grande vantaggio grazie alla sua tecnologia leggera e alla sicurezza.

In questo tutorial, imparerai come configurare un Contenitore Docker di Apache su Ubuntu. Utilizza questo tutorial per imparare a iniziare con Docker e ottenere anche un server web Apache!

Prerequisiti

Se vuoi seguire passo dopo passo, assicurati di avere quanto segue e Ubuntu 14.04.4 LTS o una versione successiva con Docker installato in questo tutorial. Questo tutorial utilizza Ubuntu 18.04.5 LTS con Docker v19.03.8 e un indirizzo IP pubblico di 13.213.48.113.

Configurazione del Contenitore Docker di Apache

Presumendo che tu abbia già installato Docker, iniziamo prima a configurare il contenitore Apache. In seguito, imparerai come avviarlo.

Uno dei modi più semplici per avviare rapidamente un contenitore Docker di Apache è scaricare un’immagine di contenitore esistente dal registro ufficiale di Docker, Docker Hub. Per questo esempio, scaricherai ed eseguirai un contenitore Docker chiamato Apache.

Con pochi comandi Docker, in poco tempo eseguirai un’istanza di Apache. Per farlo, segui i passaggi di seguito menzionati.

Nota: Questo tutorial non copre in modo approfondito l’esecuzione dei comandi Docker. Per saperne di più sui comandi Docker, visita la pagina di documentazione della riga di comando di Docker.

1. Apri un terminale sulla tua macchina Ubuntu.

2. Scarica l’immagine Docker, che contiene Apache chiamato httpd, eseguendo il comando docker pull di seguito. Questo comando scaricherà o importerà l’immagine Apache dal registro Docker, come mostrato di seguito.

# Scarica le immagini Docker dal registro docker sulla tua macchina locale.
docker pull httpd

Nella schermata seguente viene mostrato il risultato atteso durante il download dell’immagine da Docker Hub.

Pulling the Apache image from Docker Hub

3. Successivamente, conferma di aver scaricato l’immagine eseguendo il comando docker images di seguito per elencare tutte le immagini disponibili sul tuo computer.

# Per verificare le immagini Docker
docker images

Come puoi vedere di seguito, ora hai un’immagine Docker, che è l’immagine scaricata da Docker Hub.

Checking the Docker images

Esecuzione del container Apache utilizzando il comando Docker.

Nella sezione precedente, hai scaricato l’immagine Docker dal Docker hub. Ora sei pronto per creare un container da quell’immagine. Per eseguire il container Apache, dovrai eseguire il comando Docker come segue:

1. Invoca il comando docker run per creare un nuovo container basato sull’immagine Docker Apache che hai scaricato.

# Esegui un nuovo container docker chiamato docker-apache (--name)
# Mappa la porta 80 del computer locale alla porta 80 del container (-p 80:80)
# In modalità detach (-d)
# Utilizzando l'immagine Apache
docker run -d --name docker-apache -p 80:80 -d httpd

Il comando docker run restituisce quindi l’ID univoco del container che hai appena creato. Salva questo ID del container nella casella evidenziata qui sotto per il futuro se desideri eliminare o rimuovere il container.

Running a new Docker container using an Apache image

2. Una volta che il container Apache è in esecuzione, verifica se puoi accedere all’interfaccia web di Apache navigando su Indirizzo-IP-pubblico:80 utilizzando il tuo browser web. Se riesci a visualizzare lo stesso messaggio, come mostrato di seguito, allora hai avviato con successo il tuo container Docker Apache.

Assicurati che la macchina Ubuntu 14.04.4 LTS abbia una porta 80 consentita nel gruppo di sicurezza.

Accessing the Apach

3. Infine, interrompere il contenitore se non è più necessario eseguirlo eseguendo il comando docker stop di seguito. Questo comando interromperà elegantemente l’istanza del contenitore.

# Interrompere il contenitore con ID aaaee64a4512 Assicurarsi di cambiare il valore dell'ID del contenitore con il proprio.
# Nota: specificare i primi 12 caratteri dell'ID del contenitore è sufficiente.
docker stop aaaee64a4512

In alternativa, è possibile interrompere un contenitore in esecuzione specificando il suo nome nel comando docker stop (docker stop docker-apache).

Esecuzione di un contenitore Docker Apache da un file Docker

Nella sezione precedente, hai appreso come avviare un contenitore Docker Apache eseguendo l’immagine Docker httpd predefinita. Cosa fare se è necessario aggiornare l’immagine di base per visualizzare contenuti diversi o esporla su una porta diversa?

Il deploy di un contenitore usando un file Docker ti consente di eliminare il passo di creazione manuale dell’immagine quando stai testando la stessa configurazione su un sistema operativo diverso. L’approccio del file Docker è uno script automatizzato delle immagini Docker.

Creiamo un file Docker e avviamo un contenitore da esso.

1. Crea una cartella chiamata ~/apache-server-docker-demo, quindi cambia (cd) la directory di lavoro in quella cartella.

mkdir ~/apache-server-docker-demo
cd ~/apache-server-docker-demo

2. Crea un altro file, copia/incolla la configurazione seguente e salva il file come index.html all’interno della directory ~/apache-server-docker-demo. Il file index.html è una pagina HTML che visualizzerà Questo tutorial ti insegnerà come eseguire un container Apache in Docker una volta che il container si avvierà, come vedrai più avanti nel corso.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>This tutorial will teach how to Run Apache container in docker .</title>
</head>
<body>
    <h1>This tutorial will teach how to Run Apache container in docker , lets GO!</h1>
</body>
</html>

3. Crea un altro file, copia/incolla la configurazione seguente e salva il file come Dockerfile all’interno della directory ~/apache-server-docker-demo. Quando completo, Docker utilizzerà questo Dockerfile per eseguire tutti i comandi necessari per costruire una nuova immagine Docker in cima a qualsiasi immagine di base.

Il Dockerfile qui sotto contiene varie fasi/istruzioni che costruiranno il container Apache:

  • Maintainer L’istruzione Maintainer fornisce informazioni sull’autore che gestisce questo file.
  • FROM L’istruzione FROM inizializza una nuova fase di compilazione e imposta l’immagine di base per le istruzioni successive. Nel frammento di codice seguente, centos:7 è l’immagine di base.
  • COPY Il comando COPY copia un file dalla macchina host Docker alla macchina virtuale. Il index.html creato in precedenza sulla macchina host Docker verrà copiato nella directory /var/www/html del container.
  • ESPORRE – L’istruzione EXPOSE informa Docker che il container è in ascolto sulle porte di rete specificate durante l’esecuzione. Il web server Apache è esposto per impostazione predefinita sulla Porta 80.
# Istruzione per il Dockerfile per creare una nuova immagine sopra l'immagine di base (httpd)
FROM httpd:2.4
MAINTAINER [email protected]
COPY index.html /var/www/html/
EXPOSE 80

4. Successivamente, verifica tutti i file richiesti di seguito nella cartella eseguendo il comando albero.

Verify all the required files

5. Successivamente, crea l’immagine eseguendo il comando docker build. Il flag t è utilizzato per etichettare l’immagine apache-server con v1 e . significa la directory di lavoro corrente.

# Costruzione dell'immagine Docker
sudo docker build  -t apache-server:v1 .
build the image by running the docker build command

Quando Docker costruisce, restituisce vari attributi. Vedrai uno di quegli attributi è REPOSITORY. Il nome del REPOSITORY è apache-server, e l’immagine è etichettata con la versione v1, come mostrato di seguito.

Repository Attributes

6. Infine, esegui il container Apache utilizzando la nuova immagine appena creata eseguendo il comando docker run.

Il flag p pubblica le porte del container sull’host, che è 80:80. Il flag -it istruisce Docker ad allocare un pseudo-terminale collegato allo stdin del container.

# Esecuzione del container Apache utilizzando la nuova immagine appena creata
docker run -it -p 80:80 apache-server:v1

7. Infine, verifica se puoi accedere all’interfaccia web di Apache navigando su Indirizzo-ip-pubblico:80 tramite il tuo browser web. Vedrai questo messaggio sull’interfaccia web perché hai creato il file index.html e Docker lo ha copiato nel container durante l’avvio.

verify if you can access the Apache web interface

Conclusioni

Questo tutorial aveva lo scopo di guidarti attraverso il processo di configurazione di un container Apache Docker utilizzando immagini Docker. Hai imparato come avviare i container Apache usando i file Docker, con i quali puoi modificare e creare container personalizzati a tua scelta.

Quindi, cosa stai per costruire sull’immagine del server Apache Docker?

Source:
https://adamtheautomator.com/apache-docker/