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

Che cos'è Docker, Differenza tra Docker e VM, Installazione di Docker e suo utilizzo

In precedenza abbiamo visto le installazioni di hypervisor come Xen e middleware cloud come openstack. Recentemente una nuova tecnologia chiamata docker container è diventata la tendenza più in voga nello sviluppo di applicazioni. In questo articolo vedremo cos'è esattamente una finestra mobile, le sue differenze con le macchine virtuali, l'installazione della finestra mobile e il suo utilizzo.

Cos'è Docker?

Docker è un contenitore che racchiude un pezzo di software in un file system completo che contiene tutto ciò di cui ha bisogno per essere eseguito:codice, runtime, strumenti di sistema, librerie di sistema, qualsiasi cosa tu possa installare su un server. I container si virtualizzano a livello di sistema operativo, rendendolo più efficiente degli hypervisor nell'utilizzo delle risorse di sistema. Esistono molte tecnologie di container Linux come LXC, Docker ecc.

Qual ​​è la differenza tra Docker e una macchina virtuale?

Con un approccio architetturale diverso, i container sono molto più portatili ed efficienti, anche se hanno un isolamento delle risorse simile. L'immagine sotto mostra la differenza architettonica tra un container e le macchine virtuali.

Macchine virtuali Contenitori 1.Necessita di un hypervisor e di un sistema operativo completo all'interno 1. Parla con il kernel host 2. Ingombro maggiore (RAM e spazio di archiviazione) 2. Ingombro ridotto (nessuna RAM e memoria differenziale) 3. Le macchine virtuali consumano spazio di archiviazione per ogni istanza ~1,2 GB 3. Consuma molto meno spazio ~2,5 MB 4. Più pesante 4. Leggero 5. Il tempo di avvio delle macchine virtuali è dell'ordine di minuti 5. Il tempo di avvio è nell'ordine dei secondi 6. La distribuzione è difficile. 6. Distribuzione semplice con requisiti minimi per l'esecuzione dell'applicazione 7. Più lento 7. Più veloce 8. Problemi di sicurezza dell'esecuzione del sistema operativo 8. Problemi di sicurezza limitati alle applicazioni

Come installare un contenitore Docker su CentOS 7?

L'ultima versione ufficiale di Docker è la v1.10. Di seguito le istruzioni per l'installazione di Docker Container sul server CentOS 7. Accedi al server CentOS 7 come root e segui i passaggi seguenti.

Passaggio 1: Come best practice, aggiorniamo il sistema usando yum come mostrato di seguito:

# yum -y update

Passaggio 2: Per impostazione predefinita, Docker è incluso nel repository CentOS-Extra. Se desideri utilizzare una versione più aggiornata della finestra mobile, esegui il comando seguente per aggiungere al repository.

# tee /etc/yum.repos.d/docker.repo <<-'EOF'
 > [dockerrepo]
 > name=Docker Repository
 > baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
 > enabled=1
 > gpgcheck=1
 > gpgkey=https://yum.dockerproject.org/gpg
 > EOF
 [dockerrepo]
 name=Docker Repository
 baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
 enabled=1
 gpgcheck=1
 gpgkey=https://yum.dockerproject.org/gpg

Passaggio 3: Installa il pacchetto Docker e il registro Docker. Il registro Docker è un'applicazione lato server senza stato e altamente scalabile che archivia e consente di distribuire le immagini Docker.

# yum -y install docker docker-registry

Passaggio 3: Al termine dell'installazione di Docker, avvia il servizio Docker.

systemctl start docker.service

Passaggio 4: Assicurati che il servizio Docker si avvii all'avvio con il comando seguente:

#  systemctl enable docker.service

Passaggio 5: Verifica il servizio Docker

systemctl status docker.service
docker.service - Docker Application Container Engine
 Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
 Active: active (running) since Tue 2016-03-22 16:29:00 IST; 20h ago
 Docs: http://docs.docker.com
 Main PID: 30108 (docker)
 CGroup: /system.slice/docker.service
 ââ30108 /usr/bin/docker daemon --selinux-enabled
Mar 22 17:10:12 vm1 docker[30108]: time="2016-03-22T17:10:12.541577770+05:3...1"
 Mar 22 17:11:05 vm1 docker[30108]: time="2016-03-22T17:11:05.429417681+05:3...0"
 Mar 22 17:11:05 vm1 docker[30108]: time="2016-03-22T17:11:05.429730128+05:3...s"
 Mar 22 17:11:05 vm1 docker[30108]: time="2016-03-22T17:11:05.429781346+05:3...04
 Mar 22 17:11:13 vm1 docker[30108]: time="2016-03-22T17:11:13.020019713+05:3...0"
 Mar 22 17:11:23 vm1 docker[30108]: time="2016-03-22T17:11:23.021293894+05:3...e"
 Mar 22 17:11:28 vm1 docker[30108]: time="2016-03-22T17:11:28.600657892+05:3...n"
 Mar 22 17:11:35 vm1 docker[30108]: time="2016-03-22T17:11:35.938950613+05:3...0"
 Mar 22 17:11:45 vm1 docker[30108]: time="2016-03-22T17:11:45.939810804+05:3...e"
 Mar 22 17:11:57 vm1 docker[30108]: time="2016-03-22T17:11:57.720737864+05:3...n"
 Hint: Some lines were ellipsized, use -l to show in full.

Come si usa Docker?

Passaggio 1: Scarica un contenitore Docker. Esegui il comando seguente per ottenere l'ultima immagine CentOS ufficiale stabile:

# docker pull centos

Il comando precedente estrae l'ultima versione stabile di centos. Per estrarre qualsiasi altra versione dell'immagine CentOS, ad esempio CentOS 6:

# docker pull centos:centos6

Passaggio 2: Per verificare che le immagini siano state scaricate in locale:

# docker images centos
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
docker.io/centos latest bb3d629a7cbc 2 weeks ago 196.6 MB

Passaggio 3: Per elencare tutte le immagini scaricate disponibili:

# docker images

Come eseguire un Docker Container

Passaggio 1: Esegui un contenitore Centos di base con una shell bash. Qui, -i l'opzione allega stdin e stdout , -t assegna un tty .

# docker run -i -t centos /bin/bash

Questo è tutto! Ora sei atterrato su una shell bash all'interno di un container docker centos.

Comandi per lavorare con i container Docker

1. Per scollegare o staccare dal contenitore senza spegnere il contenitore:

Ctrl-p + Ctrl-q

2. Ci sono molti container già disponibili per comunità. Per elencare i contenitori della community:

# docker search centos
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/centos The official build of CentOS. 2042 [OK]
docker.io docker.io/jdeathe/centos-ssh CentOS-6 6.7 x86_64 / CentOS-7 7.2.1511 x8... 18 [OK]
docker.io docker.io/jdeathe/centos-ssh-apache-php CentOS-6 6.7 x86_64 / Apache / PHP / PHP M... 14 [OK]
...
...
# docker search ubuntu
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/ubuntu Ubuntu is a Debian-based Linux operating s... 3464 [OK]
docker.io docker.io/ubuntu-upstart Upstart is an event-based replacement for ... 60 [OK]
docker.io docker.io/torusware/speedus-ubuntu Always updated official Ubuntu docker imag... 25 [OK]
docker.io docker.io/rastasheep/ubuntu-sshd Dockerized SSH service, built on top of of... 23 [OK]
...
...

3. Elenca tutti i contenitori

# docker ps -a

4. Elenca solo i contenitori in esecuzione

# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4293c8265d00 centos "/bin/bash" 22 hours ago Up 9 seconds agitated_poincare

5. Arresta un contenitore
Ottieni l'ID contenitore dall'elenco sopra e utilizzalo per arrestare il rispettivo contenitore:

# docker stop 4293c8265d00

6:riavvia il servizio Docker

# systemctl restart docker.service

Docker
  1. Qual è la differenza tra i container LXC, LXD e Docker

  2. differenza tra podman e docker.

  3. La differenza tra CMD e ENTRYPOINT nelle immagini Docker

  4. Qual è la differenza tra COPIA e AGGIUNGI in Dockerfiles?

  5. Qual è la differenza tra ls e l?

Docker:installazione e utilizzo di base su Ubuntu 16.04

Qual è la differenza tra Linux e Unix?

Qual è la differenza tra le istruzioni COPIA e AGGIUNGI in Dockerfile?

Che cos'è un hypervisor? Qual è la differenza tra il tipo 1 e 2?

Qual è la differenza tra curl e Wget?

Qual è la differenza tra chiamata di sistema e chiamata di libreria?