GNU/Linux >> Linux Esercitazione >  >> Panels >> Docker

Tutorial Docker – Introduzione a Docker in Linux

Questo tutorial dettagliato su Docker copre le basi dei comandi Docker, ad esempio come creare un nuovo contenitore, come eseguire il contenitore, rimuovere un contenitore, come creare la tua immagine Docker dal contenitore e così via. Cominciamo!

Se non hai ancora installato Docker, consulta le seguenti guide:

  • Come installare Docker in CentOS
  • Come installare Docker in Ubuntu

Iniziare con Docker in Linux

Tutti i passaggi indicati di seguito sono testati nell'edizione server LTS di Ubuntu 18.04.

Prima di iniziare con Docker, vorrei chiarire cos'è un'immagine Docker e un contenitore Docker.

Un'immagine Docker è il file che decide come deve comportarsi un Container e Docker Container è la fase in esecuzione o interrotta di un'immagine Docker.

I contenitori sono isolati dal resto dei file dell'host.

Quando eseguiamo un contenitore Docker, utilizza un filesystem isolato fornito da un'immagine Docker. L'immagine Docker è composta da tutto il necessario per eseguire un'applicazione:tutte le dipendenze, la configurazione, gli script, i file binari, ecc.

L'immagine contiene anche altre configurazioni per il contenitore, come variabili di ambiente, un comando predefinito da eseguire e altri metadati.

1. Cerca immagini Docker

Possiamo ottenere le immagini da entrambi dal registro, ad esempio Hub Docker , o crearne uno, Per chi se lo chiedesse, Docker hub è un repository centrale online in cui tutti gli utenti Docker creano, testano e salvano le loro immagini Docker.

L'hub Docker ha decine di migliaia di immagini Docker. Puoi cercare qualsiasi immagine Docker con "docker search" comando.

Ad esempio, per cercare immagini docker basate su Ubuntu, esegui:

$ sudo docker cerca ubuntu

Risultato di esempio:

Per cercare immagini in base a CentOS, esegui:

$ sudo docker cerca ubuntu

Per cercare immagini per AWS, esegui:

$ sudo docker search aws

Per wordpress:

$ sudo docker cerca wordpress

L'hub Docker ha quasi tutti i tipi di immagini. Che si tratti di un sistema operativo, un'applicazione o altro, troverai immagini Docker predefinite nell'hub Docker.

Se qualcosa che stai cercando non è disponibile, puoi costruirlo e renderlo disponibile al pubblico o mantenerlo privato per uso personale.

2. Scarica l'immagine Docker

Per scaricare l'immagine Docker per il sistema operativo Ubuntu, esegui il seguente comando dal Terminale:

$ sudo docker pull ubuntu

Il comando precedente scaricherà l'ultima immagine di Ubuntu dall'hub Docker .

Risultato di esempio:

 Utilizzo del tag predefinito:ultimatest:estrazione dalla libreria/ubuntu6abc03819f3e:pull complete complete 05731e63f211:pull complete 0bd67c50d6be:pull complet digest:sha256:f08638ec7ddc90065187eeabdfac3tu 4f3cf176.  

Puoi anche scaricare una versione specifica dell'immagine di Ubuntu usando il comando:

$ docker pull ubuntu:18.04

Docker ci consente di scaricare qualsiasi immagine e avviare il contenitore indipendentemente dal sistema operativo host.

Ad esempio, per scaricare l'immagine CentOS, esegui:

$ sudo docker cento tira

Tutte le immagini Docker scaricate verranno salvate in /var/lib/docker/ directory.

Per visualizzare l'elenco delle immagini Docker scaricate, eseguire:

Immagini della finestra mobile $ sudo

Risultato di esempio:

REPOSITORY TAG IMAGE ID CREATED SIZEubuntu più recente 7698f282e524 14 ore fa 69.9MBcentos più recente 9f38484d220f 2 mesi fa 202MBhello-world più recente fce289e99eb9 4 mesi fa 1.84kB

Come vedi sopra, ho scaricato tre immagini Docker:Ubuntu , CentOS e ciao mondo .

Ora andiamo avanti e vediamo come avviare o eseguire i container in base alle immagini scaricate.

3. Esegui i contenitori Docker

Possiamo avviare un container in due modi:utilizzando il suo TAG o ID IMMAGINE .

TAG si riferisce a una particolare istantanea dell'immagine e all'ID IMMAGINE è l'identificatore univoco corrispondente per quell'immagine.

Come nei risultati precedenti "latest" è il TAG di tutti i contenitori e 7698f282e524 è l'ID IMMAGINE di Ubuntu Immagine Docker, 9f38484d220f è l'ID immagine dell'immagine Docker CentOS e fce289e99eb9 è l'ID immagine di hello_world Immagine Docker.

Dopo aver scaricato le immagini Docker di tua scelta, esegui il comando seguente per avviare un container Docker utilizzando il relativo TAG.

$ sudo docker run -t -i ubuntu:latest /bin/bash

Ecco,

  • -t :Assegna un nuovo Pseudo Terminale all'interno del contenitore Ubuntu.
  • -i : Ci consente di stabilire una connessione interattiva afferrando lo standard in (STDIN) del contenitore.
  • ubuntu:latest :contenitore Ubuntu con TAG "latest".
  • /bin/bash :shell BASH per il nuovo contenitore.

In alternativa, puoi avviare il contenitore utilizzando IMAGE ID come mostrato di seguito:

$ sudo docker esegui -t -i 7698f282e524 /bin/bash

Ecco,

  • 7698f282e524 - ID immagine

Dopo aver avviato il container, verrai automaticamente trasferito nella shell del container (prompt dei comandi):

Per tornare al Terminale del sistema host (nel mio caso è Ubuntu 18.04 LTS) senza terminare il Container (sistema operativo ospite), premere CTRL+P seguito da CTRL+Q .

Ora tornerai in sicurezza alla finestra del terminale del tuo computer host originale. Tieni presente che il contenitore è ancora in esecuzione in background e non è stato ancora terminato.

Per visualizzare l'elenco in esecuzione dei contenitori, eseguire il comando seguente:

$ sudo docker ps

Risultato di esempio:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES32fc32ad0d54 ubuntu:latest "/bin/bash" 7 minuti fa Fino a 7 minuti modest_jones

Ecco,

  • 32fc32ad0d54 - ID contenitore
  • ubuntu:latest - Immagine Docker

Tieni presente che L'ID contenitore e l'ID immagine Docker sono diversi .

Per elencare tutti i contenitori disponibili (in esecuzione o interrotti), esegui:

$ sudo docker ps -a

Per interrompere (spegnere il contenitore) dalla shell dell'host, eseguire il comando seguente:

$ sudo docker stop 

Esempio:

$ sudo docker stop 32fc32ad0d54

Per accedere nuovamente o collegarsi al contenitore in esecuzione, esegui semplicemente:

$ sudo docker allega 32fc32ad0d54

Come già sai, 32fc32ad0d54 è l'ID del contenitore.

Per spegnere un Container dall'interno della sua shell, digita il seguente comando:

# uscita

Puoi verificare l'elenco dei contenitori in esecuzione con il comando:

$ sudo docker ps

4. Crea le tue immagini Docker personalizzate

Docker non serve solo per scaricare e utilizzare i contenitori esistenti. Puoi anche creare la tua immagine della finestra mobile personalizzata.

Per farlo, avvia un container:

$ sudo docker run -t -i ubuntu:latest /bin/bash

Ora sarai nel guscio del contenitore.

Quindi, installa qualsiasi software o fai quello che vuoi fare nel contenitore.

Ad esempio, installiamo il server web Apache nel contenitore.

# apt update# apt install apache2

Allo stesso modo, installa e testa qualsiasi software di tua scelta nel contenitore.

Una volta impostato tutto, torna alla shell del sistema host. Non fermare o spegnere il contenitore. Per passare alla shell del sistema host senza interrompere Container, premi CTRL+P seguito da CTRL+Q .

Dalla shell del tuo computer host, esegui il comando seguente per trovare l'ID contenitore:

$ sudo docker ps

Infine, crea un'immagine Docker del contenitore in esecuzione usando il comando:

$ sudo docker commit 3d24b3de0bfc ostechnix/ubuntu_apache

Risultato di esempio:

sha256:ce5aa74a48f1e01ea312165887d30691a59caa0d99a2a4aa5116ae124f02f962

Ecco,

  • 3d24b3de0bfc – ID contenitore Ubuntu.
  • ostechnix – Nome dell'utente che ha creato il contenitore.
  • ubuntu_apache – Nome dell'immagine della finestra mobile creata dall'utente ostechnix.

Verifichiamo se la nuova immagine Docker viene creata o meno con il comando:

Immagini della finestra mobile $ sudo

Risultato di esempio:

REPOSITORY TAG IMAGE ID CREATED SIZEotechnix/ubuntu_apache latest ce5aa74a48f1 Circa un minuto fa 191MB ubuntu più recente 7698f282e524 15 ore fa 69.9MBcentos più recente 9f38484d220f 2 mesi fa 202MBhello-world più recente fce289e99eb9 4 mesi fa 1.84kB

Come puoi vedere nell'output sopra, la nuova immagine Docker è stata creata nel nostro sistema localhost dal contenitore in esecuzione.

Ora puoi creare un nuovo contenitore dall'immagine Docker appena creata come al solito con il comando:

$ sudo docker run -t -i ostechnix/ubuntu_apache /bin/bash

5. Rimozione dei contenitori

Una volta terminate tutte le attività di ricerca e sviluppo con i contenitori Docker, puoi eliminarli se non li desideri più.

Per farlo, per prima cosa dobbiamo fermare (spegnere) i container in esecuzione.

Scopriamo i container in esecuzione con il comando:

$ sudo docker ps

Risultato di esempio:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES3d24b3de0bfc ubuntu:latest "/bin/bash" 28 minuti fa Fino a 28 minuti goofy_easley

Arresta il contenitore in esecuzione utilizzando il suo ID:

$ sudo docker ferma 3d24b3de0bfc

Ora, elimina il contenitore usando il comando:

$ sudo docker rm 3d24b3de0bfc

Allo stesso modo, interrompi tutti i contenitori ed eliminali se non sono più necessari.

Eliminare più contenitori uno per uno può essere un compito noioso. Quindi, possiamo eliminare tutti i contenitori interrotti in una volta sola, basta eseguire:

Puta contenitore $ sudo docker

Digita "Y" e premi ENTER tasto per eliminare i contenitori.

ATTENZIONE! Verranno rimossi tutti i contenitori interrotti. Continuare? [y/N] y Contenitori eliminati:32fc32ad0d5445f2dfd0d46121251c7b5a2aea06bb22588fb2594ddbe46e65645ec614e0302061469ece212f0dba303c8fe99889389749e6220fe891997f38d0:Total reclamato 

Questo comando funzionerà solo con le ultime versioni di Docker.

6. Rimozione delle immagini Docker

Dopo aver rimosso i contenitori, puoi eliminare le immagini Docker che non ti servono più.

Per trovare l'elenco delle immagini Docker scaricate:

Immagini della finestra mobile $ sudo

Risultato di esempio:

REPOSITORY TAG IMAGE ID CREATED SIZEostechnix/ubuntu_apache più recente ce5aa74a48f1 5 minuti fa 191MBubuntu più recente 7698f282e524 15 ore fa 69.9MBcentos più recente 9f38484d220f 2 mesi fa 202MBhello-world più recente fce289e99eb9 4 mesi fa 1.84kB

Come vedi sopra, abbiamo tre immagini Docker nel nostro sistema host.

Eliminiamoli utilizzando il loro ID IMMAGINE:

$ sudo docker rmi ce5aa74a48f1

Risultato di esempio:

 Senza tag:ostechnix / ubuntu_apache:latestDeleted:sha256:ce5aa74a48f1e01ea312165887d30691a59caa0d99a2a4aa5116ae124f02f962Deleted:sha256:d21c926f11a64b811dc75391bbe0191b50b8fe142419f7616b3cee70229f14cd 

Risoluzione dei problemi

Docker non ti consentirà di eliminare le immagini Docker se vengono utilizzate da contenitori in esecuzione o fermi.

Ad esempio, quando provo a eliminare un'immagine Docker con ID b72889fa879c , da uno dei miei vecchi server Ubuntu. Ho ricevuto il seguente errore:

Risposta all'errore dal demone:conflitto:impossibile eliminare b72889fa879c (deve essere forzato) - l'immagine è utilizzata dal contenitore interrotto dde4dd285377

Questo perché l'immagine Docker che desideri eliminare è attualmente utilizzata da un altro contenitore.

Quindi, controlliamo il contenitore in esecuzione usando il comando:

$ sudo docker ps

Risultato di esempio:

Ops! Nessun contenitore in esecuzione.

Controlliamo di nuovo tutti i contenitori (in esecuzione e fermi) con il comando:

$ sudo docker ps -a

Risultato di esempio:

Come puoi vedere, ci sono ancora alcuni contenitori fermi che utilizzano una delle immagini Docker. Quindi, eliminiamo tutti i contenitori.

Esempio:

$ sudo docker rm 12e892156219

Allo stesso modo, rimuovi tutti i contenitori come mostrato sopra utilizzando il rispettivo ID contenitore.

Dopo aver eliminato tutti i contenitori, rimuovi finalmente le immagini Docker.

Esempio:

$ sudo docker rmi b72889fa879c

Questo è tutto. Ora verifica se ci sono altre immagini Docker nell'host con il comando:

Immagini della finestra mobile $ sudo

Ora probabilmente non vedrai alcuna immagine della finestra mobile.

Leggi successivo:

  • Spiegazione dei concetti di rete Docker
  • Spiegazione dei volumi Docker con esempi
  • Una breve introduzione a Dockerfile
  • Introduzione a Docker Compose in Linux
  • Come eseguire Docker come utente non root in Linux
  • Tutorial Podman – Inizia con Podman

Conclusione

In questo tutorial completo per iniziare con Docker, abbiamo spiegato le nozioni di base di Docker come la creazione, l'esecuzione, la ricerca, la rimozione di container e anche la creazione di un'immagine Docker dal container.

Spero che tu abbia un'idea di base sull'utilizzo di Docker.

Per maggiori dettagli, fai riferimento ai link alle risorse ufficiali forniti alla fine di questa guida o lascia un commento nella sezione commenti qui sotto.

Scarica ebook Docker gratuiti:

Download - Free eBook: "Docker Containerization Cookbook" 
Download - Free Guide: "Understanding Docker" 
Download - Free Guide: "What is Docker and Why is it So Popular?" 
Download - Free Guide: "Introduction to Docker" 
Download - Free Guide: "Docker in Production" 

Lettura consigliata:

  • Come aggiornare automaticamente i contenitori Docker in esecuzione
  • ctop – Uno strumento di monitoraggio della riga di comando per i container Linux
  • Portainer:il modo più semplice per gestire Docker
  • PiCluster:una semplice applicazione di gestione Docker basata sul Web
  • Dockly - Gestisci i container Docker dal terminale

Docker
  1. Introduzione a btrfs per Linux

  2. Consigli per iniziare con GNOME

  3. Introduzione ai firewall Linux

  4. Iniziare con PostgreSQL su Linux

  5. Introduzione a SSH in Linux

Tutorial Vagrant – Introduzione a Vagrant in Linux

Tutorial Podman - Inizia con Podman

Introduzione a Docker Compose in Linux

Introduzione a VirtualBox in Linux – Parte 1

Introduzione a Flutter su desktop Linux

Introduzione all'esercitazione Docker di Azure