2015-03-27 41 views
38

Sono principiante nel mondo della virtualizzazione. Qualcuno può spiegarmi le differenze tra OpenVZ e Docker?Differenza tra Docker e OpenVZ

Cosa potrebbe essere buono per il futuro?

Pro e contro?

+0

nessun ente esperto in openVZ e nella finestra mobile. –

+0

Direi che http://aucouranton.com/2014/06/13/linux-containers-parallels-lxc-openvz-docker-and-more/ è una buona risposta :) –

risposta

65

La prospettiva sui contenitori è molto diverso tra 2.

In breve OpenVZ vede un contenitore come VPS, e docker vede un contenitore come applicazione/servizio.

Che cosa implica? Per OpenVZ ci si può aspettare che quando si creano contenitori, è come fare server virtuali. OpenVZ ha interfacce focalizzate sulla creazione di contenitori VPS che si decorano manualmente. Pertanto forniscono modelli per macchine Linux linux che è possibile avviare e spegnere, e quindi inserire SSH, per configurarle autonomamente con qualsiasi cosa sia necessaria, come una pila LAMP.

Quando si desidera impostare uno stack LAMP, lo si dovrebbe fare come di solito quando si configura un nuovo server. Si ottiene una macchina Linux vuota con un adattatore Ethernet virtuale che ha il proprio IP WAN accessibile pubblicamente con Ubuntu su di esso, l'accesso con SSH e si installa tutti i servizi richiesti utilizzando il gestore di pacchetti medio (yum o apt) e si fa il configurazione richiesta nei file di configurazione.

Per Docker, ci si può aspettare che quando si creano contenitori, il contenitore sia una singola applicazione, che faccia UN'UNICA cosa. Quindi, potrebbe essere necessario qualche altro contenitore per aiutarlo. (Ad esempio un contenitore che fornisce un database) Docker ha reso molto facile definire cosa è contenuto in un contenitore senza doverlo avviare effettivamente e crea costantemente nuove istanze esattamente uguali di questo contenitore. Definiscono il contenuto di un contenitore di finestra mobile (l'immagine) utilizzando modelli molto leggeri che chiamano Dockerfiles.

C'è già un enorme set di dockerfile, che puoi trovare nell'hub Docker, dai un'occhiata (è come trovarsi in un negozio di caramelle con caramelle gratis!: D): docker hub. Le immagini prodotte da questi dockerfile possono essere tirate con lo strumento CLI della finestra mobile, utilizzando un comando pull. Nella docker c'è anche un facile accesso a cose come port forwarding, directory virtuali (in modo da poter accedere facilmente ai file sulla macchina host) e cose simili che qualsiasi eseguibile potrebbe usare.

Se si vuole uno stack LAMP in finestra mobile, tutto ciò che fai è "correre finestra mobile -d -p 80:80 tutum/lampada"

Questo tira l'immagine tutum/lampada, e corre daemonised (-d) esso con la porta 80 dal contenitore inoltrato alla porta 80 dell'host, esponendo il servizio web interno all'esterno. Come puoi vedere, non ha il suo indirizzo IP in contrasto con una macchina OpenVZ. E proprio come se fosse un server Apache in esecuzione sul tuo computer root. Il vantaggio rispetto all'installazione nativa, è che la finestra mobile rende l'installazione molto più semplice e replicabile in modo illimitato. Inoltre, non ingombra la macchina host con molti file e fornisce un limite di sicurezza attorno all'applicazione.

C'è un sacco di funzioni nella maggior parte delle immagini docker, che sono uniche ad esso. Per l'immagine tutum/lampada, take a look here.

+1

Grazie mille per la risposta dettagliata:). Ho pochi dubbi. Considera una configurazione in cui ho bisogno di un server mysql e di un apache di tomcat con due schede di rete. Questo può essere facilmente ottenuto in openVZ poiché è un server virtuale e posso creare il maggior numero di server virtuali virtuali nella stessa macchina. Come potrei raggiungere questo Docker? –

+0

per chi vuole saperne di più sui contenitori e sulla finestra mobile di Linux, leggi questo http://stackoverflow.com/questions/16047306/how-is-docker-io-different-from-a-normal-virtual-machine?rq= 1 –

+0

La configurazione potrebbe essere raggiunta in entrambe le soluzioni. Quando si sceglie per la finestra mobile, si inoltreranno semplicemente le porte dei servizi containerizzati in modo che sembrino essere ospitati dall'host di docker. Inoltre, è possibile scegliere di collegare i contenitori a vicenda, in modo che non sia necessario esporre il database al Web. Personalmente preferisco la finestra mobile, c'è una curva di apprendimento, ma alla fine è molto più facile installare e installare applicazioni. Ti innamorerai sicuramente di Docker in pochi giorni. Scommetto. – RoyB