Come installare, eseguire ed eliminare applicazioni all'interno dei contenitori Docker

Seguendo il precedente Docker articolo, questo tutorial discuterà come salvare un contenitore Docker in una nuova immagine, rimuovere un contenitore ed eseguire un Nginx server web all'interno di un contenitore.

Requisiti

  • Come installare Docker ed eseguire contenitori in CentOS/RHEL 8/7 – Parte 1

Come eseguire e salvare un contenitore Docker

1. In questo esempio, eseguiremo e salveremo un Basato su Ubuntu Docker container dove il Nginx server verrà installato. Ma prima di eseguire il commit di qualsiasi modifica a un contenitore, avvia prima il contenitore con i comandi seguenti che aggiorna e installa Nginx demone nell'immagine di Ubuntu:

# docker esegue ubuntu bash -c "apt-get -y update" # docker esegue ubuntu bash -c "apt-get -y install nginx" 
Installa Nginx su Ubuntu Docker Container
Installa Nginx su Ubuntu Docker Container

Se ricevi l'errore "E: Impossibile individuare il pacchetto nginx', quindi devi connetterti a un contenitore con CLI interattiva e installare nginx come mostrato.

# docker run -it ubuntu bash. # apt installa nginx. # Uscita. 

2. Avanti, dopo Nginx il pacchetto è installato, impartire il comando docker ps -l prendere il ID o nome del contenitore in esecuzione.

# docker ps -l. 
Trova il nome dell'ID del contenitore Docker
Trova il nome dell'ID del contenitore Docker

E applica le modifiche eseguendo il comando seguente:

# docker commit 5976e4ae287c ubuntu-nginx. 

Qui, 5976e4ae287c rappresenta il contenitore ID e ubuntu-nginx rappresenta il nome della nuova immagine che è stata salvata con le modifiche confermate.

Per vedere se la nuova immagine è stata creata con successo basta eseguire immagini docker comando e verrà mostrato un elenco di tutte le immagini salvate.

# immagini della finestra mobile. 
Modifiche al contenitore Docker
Modifiche al contenitore Docker

È probabile che il processo di installazione all'interno del contenitore termini rapidamente, il che porta a un contenitore non in esecuzione (il contenitore viene arrestato). In questo caso il finestra mobile ps comando non mostrerà alcun output perché nessun contenitore è in esecuzione.

Per poter ancora ottenere l'id run del contenitore docker ps -a | testa -3 per emettere i contenitori più recenti e identificare il contenitore in base al comando emesso per creare il contenitore e lo stato di uscita.

3. In alternativa, puoi accedere attivamente alle sessioni del contenitore eseguendo docker run -it ubuntu bash comando ed eseguire l'ulteriore apt-get install nginx comando. Mentre il comando è in esecuzione, scollegati dal contenitore usando Ctrl-p + Ctrl-q keys e il contenitore continuerà a funzionare anche se il processo di installazione di Nginx termina.

# docker run -it ubuntu bash. # apt-get install nginx. 
Installa Nginx su Docker Container
Installa Nginx su Docker Container

Quindi, ottieni l'ID del contenitore in esecuzione con finestra mobile ps e commettere modifiche. Al termine, rientra nella console del contenitore utilizzando attacco mobile e digita Uscita per fermare il contenitore.

# docker ps. # collegamento docker 3378689f2069. # Uscita. 
Attacca il contenitore Docker
Attacca il contenitore Docker

4. Per verificare ulteriormente se l'immagine recente è stata confermata correttamente (in questo caso Nginx service è stato installato), eseguire il comando seguente per generare un nuovo contenitore che verrà visualizzato se il binario Nginx è stato installato correttamente:

# docker esegue ubuntu-nginx dove è nginx. 
Genera nuovo contenitore Docker
Genera nuovo contenitore Docker

5. Per rimuovere un contenitore utilizzare il rm comando contro un ID o un nome contenitore, che può essere ottenuto utilizzando docker ps -a comando:

# docker ps -a. # sudo docker rm 36488523933a. 
Rimuovi contenitore Docker
Rimuovi contenitore Docker

Come eseguire Nginx all'interno di Docker Container

6. In questa parte ci concentreremo su come eseguire e accedere a un servizio di rete, come un Nginx server web, all'interno di Docker, utilizzando il ubuntu-nginx immagine creata in precedenza dove era installato il demone Nginx.

La prima cosa che devi fare è creare un nuovo contenitore, mappare le porte host-contenitore e inserire la shell del contenitore emettendo il comando seguente:

# docker run -it -p 81:80 ubuntu-nginx /bin/bash. # nginx &

qui, il -P L'opzione espone la porta host alla porta del contenitore. Mentre la porta host può essere arbitraria, con la condizione che dovrebbe essere disponibile (nessun altro host services dovrebbero essere in ascolto su di esso), la porta del contenitore deve essere esattamente la porta del demone interno ascoltare.

Una volta connesso alla sessione del contenitore, avvia Nginx demone in background e scollegarsi dalla console del contenitore premendo Ctrl-p + Ctrl-q chiavi.

Esegui Nginx all'interno del contenitore Docker
Esegui Nginx all'interno del contenitore Docker

7. Ora, corri finestra mobile ps per ottenere lo stato del contenitore in esecuzione. Puoi anche visualizzare i socket di rete dell'host emettendo il seguente comando:

# docker ps. O. # netstat -tlpn 
Visualizza lo stato di esecuzione del contenitore Docker
Visualizza lo stato di esecuzione del contenitore Docker

8. Per visitare la pagina servita dal contenitore Nginx, apri un browser da una postazione remota nella tua LAN e digita l'indirizzo IP della tua macchina utilizzando il protocollo HTTP.

Verifica Nginx in esecuzione in Docker Container
Verifica Nginx in esecuzione in Docker Container

9. Per arrestare il contenitore, eseguire il comando seguente seguito dall'ID o dal nome del contenitore:

# docker ps. # docker stop fervent_mccarthy. # docker ps. 
Interrompi l'esecuzione del contenitore Docker
Interrompi l'esecuzione del contenitore Docker

In alternativa per interrompere il contenitore in esecuzione, immettere il prompt dei comandi della shell del contenitore e digitare exit per completare il processo:

# docker attach fervent_mccarthy. # Uscita. 

Tieni presente che l'utilizzo di questo tipo di contenitore per eseguire server Web o altri tipi di servizi è solo più adatto per scopi di sviluppo o test a causa del fatto che i servizi sono attivi solo mentre il contenitore è in esecuzione. L'uscita dal contenitore interrompe tutti i servizi in esecuzione o qualsiasi modifica apportata.

Ulteriori letture:

Parte 3: Crea e configura automaticamente le immagini Docker con Dockerfile su CentOS/RHEL 8/7
Parte 4: Come monitorare i contenitori Docker in Linux
Teachs.ru