Negli ultimi anni, Docker ha guadagnato popolarità come applicazione di containerizzazione. I contenitori offrono i vantaggi delle macchine virtuali senza le spese generali associate.
Una macchina virtuale consente agli utenti di avviare un sistema operativo autonomo sopra un'altra macchina. Significa che gli utenti possono eseguire un altro macchina Linux o Windows sopra il loro sistema operativo corrente. Tuttavia, è un processo ad alta intensità di risorse.
Ogni macchina virtuale avvia il proprio kernel del sistema operativo, binari, librerie e applicazioni in cima alla macchina host. I contenitori risolvono questo problema attraverso la condivisione del kernel della macchina host. Si separa solo a livello di applicazione. Binari e librerie sono separati solo quando necessario. Di conseguenza, i contenitori hanno tempi di esecuzione più veloci e impronte più piccole. Docker è attualmente la tecnologia di container più popolare.
Installazione su Ubuntu
Prerequisito
Docker ha una versione della comunità gratuita chiamata Docker CE e una versione Enterprise a pagamento chiamata Docker EE. In questo articolo, ci concentreremo sulla versione della comunità.
Docker CE richiede una versione a 64 bit di Ubuntu in uno dei seguenti sapori:
- Zesty 17.04
- Xeniale 16.04 (LTS)
- Fidato 14.04 (LTS)
Puoi eseguire molti comandi come utente non root. Tuttavia, avrai bisogno dell'accesso root (sudo) per alcuni comandi.
Installazione di Docker
Esistono diversi modi per installare Docker. In questo tutorial, imposteremo il repository Docker e installeremo Docker CE dal repository. Inoltre, supponiamo che tu abbia una macchina pulita senza versioni precedenti di Docker. Se hai una versione precedente di Docker, ti preghiamo di disinstallare la versione prima di iniziare.
Impostazione del repository
1. Aggiorna il tuo pacchetto APT per assicurarti che il tuo sistema operativo sia aggiornato:
2. Installa i seguenti pacchetti:
$ sudo apt-get Installa \ |
Software-Properties-Common |
3. Aggiungi la chiave GPG ufficiale
$ CURL -FSSL https: // download.Docker.com/linux/ubuntu/gpg | sudo Apt-Key Aggiungi - |
Verificare che l'impronta digitale chiave sia 9dc8 5822 9fc7 dd38 854a e2d8 8d81 803c 0EBF CD88. È possibile utilizzare il seguente comando:
$ sudo apt-key impronta 0ebfcd88 |
Pub 4096R/0EBFCD88 2017-02-22 |
Chiave impronta digitale = 9dc8 5822 9fc7 dd38 854a e2d8 8d81 803c 0EBF CD88 |
UID Docker Release (CE DEB) |
Sub 4096R/F273FCD8 2017-02-22 |
4. Imposta un repository stabile utilizzando quanto segue:
$ sudo add-apt-repository \ |
"Deb [arch = AMD64] https: // download.Docker.com/linux/ubuntu \ |
L '"arco" definisce l'architettura. Per x86_64 usa “arch = amd64”, per armhf usa “arch = armhf” e per s390x usa “arch = x390x”.
Docker CE Configurazione
1. Aggiorna i tuoi pacchetti APT:
2. Installa l'ultimo Docker CE:
$ sudo apt-get install -y docker-ce |
3. Il comando sopra dovrebbe installare Docker e avviare il demone. Controlla se il demone è in esecuzione utilizzando il seguente comando:
$ sudo systemctl status docker
Il risultato dovrebbe apparire di seguito. Lo stato "attivo (in esecuzione)" significa che tutto va bene.
● Docker.Servizio - motore container dell'applicazione Docker |
Caricato: caricato (/lib/systemd/system/docker.servizio; abilitato; preimpostazione del fornitore: abilitato) |
Attivo: attivo (in esecuzione) da Sun 2017-08-30 06:53:52 PDT; 2 ore fa |
Documenti: https: // docs.Docker.com |
PID principale: 827 (Docker) |
Usando Docker
Per usare Docker, devi capire 3 concetti:
-
- Docker Hub: Docker Hub è il repository basato su cloud in cui memorizzi tutte le immagini Docker pubbliche. È possibile creare un login su Docker Hub qui: https: // hub.Docker.com/
- Immagini Docker: le immagini Docker sono le stampe blu di diversi contenitori. È un'istantanea del contenitore.
- Container Docker: eseguire un'immagine Docker si ottiene un contenitore. Il contenitore è la macchina da lavoro che utilizzerai per le tue attività.
Iniziamo a usare Docker.
Comandi Docker
Puoi visualizzare tutti i comandi Docker con quanto segue:
Puoi trovare tutti i comandi Docker qui.
Se vuoi scoprire un comando specifico, puoi usare:
$ Docker Target -comand -help
dove "bersaglio-comando" è il comando che desideri indagare.
Download di immagini Docker
Le immagini Docker vengono scaricate da Docker Hub. Non è necessario accedere per scaricare e utilizzare le immagini, ma è necessario un accesso per il caricamento delle immagini.
Scarica la tua prima immagine Docker usando il seguente comando:
L'output dovrebbe apparire così:
Impossibile trovare l'immagine "Hello-World: ultimo" a livello locale |
Ultimo: estrazione dalla biblioteca/hello-world |
B04784FBA78D: Pull Complete |
Digest: SHA256: F3B3B28A45160805BB16542C95318888519430E9E6D6FFC09D72261B0D26FF74F |
Stato: scaricata immagine più recente per Hello-World: più recente |
Questo messaggio mostra che la tua installazione sembra funzionare correttamente. |
Nelle righe sopra, Docker ha cercato per la prima volta l'immagine "Hello-World" nel tuo repository locale. Quando non era "incapace di trovare l'immagine", la tirava dall'hub Docker. Quindi gestiva il contenitore Hello-World.
Il seguente comando ti mostrerà immagini disponibili su Docker Hub:
Stavamo cercando immagini correlate a "nginx". L'output parziale sembra questo:
Nome Descrizione stelle automatizzata ufficiale |
NGINX Build ufficiale di Nginx. 6737 [OK] |
proxy Nginx reverse automatico Jwilder/Nginx-Proxy per Docker C… 1099 [OK] |
Container Richarvey/nginx-php-fpm in esecuzione nginx + php-fpm capace ... 429 [OK] |
In alternativa, puoi andare su https: // hub.Docker.com/ e cerca immagini. "Ufficiale" indica le versioni che sono state controllate dal team Docker.
Puoi anche utilizzare il comando "pull" per scaricare le immagini:
Puoi visualizzare tutte le immagini sul repository locale con il seguente comando
L'output dovrebbe apparire così:
Dimensione creata immagine del tag repository |
Ubuntu Ultimo CCC7A11d65B1 3 settimane fa 120 MB |
NINGX Ultimo B8EFB18F159B 5 settimane fa 107 MB |
Hello-World Ultimo 1815C82652C0 2 mesi fa 1.84kb |
Con le immagini del tuo repository locale, puoi avviare un contenitore. Ad esempio, puoi avviare il tuo contenitore Nginx dal repository sopra.
Container in esecuzione
Supponiamo, vogliamo creare un contenitore Ubuntu dall'immagine Ubuntu disponibile. È possibile utilizzare il seguente comando:
L'opzione -it indica al comando esegue per eseguire una shell interattiva. Vedrai un prompt dei comandi come questo:
Ciò significa che hai effettuato l'accesso come utente di root al contenitore con ID 6370A8B73050. Puoi installare tutto ciò che desideri in questo contenitore. Supponiamo di voler installare Python.
Puoi usare i comandi:
root@6370a8b73050:/# Apt-get Aggiornamento |
E
root@6370a8b73050:/# apt -get install -y python3.5 |
Una volta che le installazioni hanno successo, hai un contenitore Ubuntu pronto per Python.
È sempre possibile controllare lo stato del contenitore dalla riga di comando del tuo host ($ significa prompt host e root@6370a8b73050 Prompt container):
Comando ID contenitore Comando immagine Nomi delle porte di stato creato |
6370A8B73050 Ubuntu "/Bin/Bash" 13 minuti fa 12 minuti Cranky_Bassi |
Comando ID contenitore Comando immagine Nomi delle porte di stato creato |
6370A8B73050 Ubuntu "/Bin/Bash" 13 minuti fa 13 minuti Cranky_Bassi |
6A16D462DD28 Ubuntu "/bin/bash" 16 minuti fa usciti (0) 15 minuti fa giovanile_paseur |
889d3a9328f2 nginx "nginx -g 'demone ..." 18 minuti fa usciti (0) 17 minuti fa hardcore_ritchie |
Nell'output sopra, il comando PS mostra solo il contenitore in esecuzione mentre il comando PS con l'opzione "-a" mostra tutti i contenitori.
Salvare i contenitori come immagini
Supponiamo di voler salvare il tuo contenitore Python come immagine per riutilizzarlo in seguito.
Prima esci dal contenitore:
root@6370a8b73050:/# uscita |
È possibile salvare il contenitore nel repository locale utilizzando il comando seguente:
$ Docker commit -m "Descrizione delle modifiche" -A "Nome autore" Repository Containerid/ImageName
Il repository è generalmente il tuo nome utente da Docker Hub. Quindi puoi salvare il tuo contenitore Python in questo modo:
$ Docker commit -m "python3.5 Container "-A" Zak H "6370A8B73050 Zakh/Python3.5-pronto |
Se controlli le tue immagini, avrai un'immagine Python nel tuo repository:
Dimensione creata immagine del tag repository |
Zakh/Python3.Ultimo pronto per il 6DDF31466A89 2 minuti fa 196 MB |
Ubuntu Ultimo CCC7A11d65B1 3 settimane fa 120 MB |
NINGX Ultimo B8EFB18F159B 5 settimane fa 107 MB |
Hello-World Ultimo 1815C82652C0 2 mesi fa 1.84kb |
È possibile spingere questa immagine all'hub Docker usando i seguenti comandi:
Docker Login -u Nome utente
Docker Push Nome utente/ImageName
Nel caso sopra, sarà:
Docker Push Zakh/Python3.5-pronto |
Una volta spinto il contenitore nell'hub Docker, altri possono scaricare l'immagine sui loro computer e utilizzare il Python3.5 ambiente che hai configurato.
Pulire
Il comando seguente rimuoverà i contenitori:
Docker RM Containerid
Il comando seguente rimuoverà le immagini dal repository locale:
Docker RMI ImageID
Parole finali
La guida di cui sopra ti dà un processo passo-passo per utilizzare Docker per semplificare il tuo sviluppo. Puoi creare le tue configurazioni personali, salvarle come immagini e condividerle con altri utenti o riutilizzare le immagini da solo. Accelera l'intero processo di sviluppo.
Argomenti avanzati
- È possibile utilizzare Dockerfile per creare immagini da file yaml scritti.
- Docker Swarm può aiutarti a orchestrare e gestire un gran numero di nodi Docker.
Riferimenti:
- https: // docs.Docker.com/motore/installazione/linux/docker -ce/ubuntu/
- https: // www.digitaleceo.Com/Community/Tutorials/How-to-Install-and-Use-Docker-on-Obuntu-16-04
- https: // Docker-Curriculum.com/
- https: // www.digitaleceo.com/Community/Tutorials/The-Docker-Ecosystem-Antroduction-to-Common-Components
- https: // www.AirPair.com/docker/post/8-pro-real-world-way-to-use-docker
- http: // www.zdnet.com/articolo/what-is-docker-and-why-is-it-so-darn-popolare/
- https: // docs.Docker.com/enterprise/
- https: // docs.Docker.com/motore/sciame
- https: // docs.Docker.com/motore/riferimento/costruttore/
- https: // docs.Docker.com/motore/riferimento/comando/docker/