Jail di FreeBSD o istanze Docker


18

Quali sono le principali differenze tra jail su FreeBSD e Docker su Linux? Uno è notevolmente più sicuro o più performante dell'altro? Le jail sono molto più vecchie delle istanze Docker, quindi il codice stesso potrebbe essere considerato più sicuro. Ma le jail non hanno mai "preso piede", quindi forse non sono buone come le istanze Docker? O è solo perché Linux è molto più popolare di FreeBSD?

Risposte:


24

Tratterò alcuni aspetti delle jail di FreeBSD e Linux Docker, di come sono simili e di come sono diversi.

  • entrambi servono lo stesso obiettivo: è un'implementazione della virtualizzazione leggera, quando si esegue un'applicazione in un compartimento separato e isolato sotto lo stesso kernel, e qui finiscono le somiglianze e iniziano le differenze
  • Docker è uno strumento che viene utilizzato principalmente per l'esecuzione di immagini binarie preparate che è possibile ottenere da vari repository pubblici o privati. Molte persone lo usano in questo modo. Sempre meno persone costruiscono le proprie e caricano quindi in quei repository.
  • Le jail di FreeBSD sono più simili a LXC in Linux: è un metodo per creare il tuo contenitore da zero. Lo crei, installi il software al suo interno e questo è praticamente tutto: può essere trattato come un FreeBSD all'interno di FreeBSD. Non esiste un modo semplice per esportare quel contenitore come un singolo software, come in Docker. Praticamente tutte le persone che usano FreeBSD, al contrario, costruiscono sempre il loro pezzo di FreeBSD all'interno di un contenitore da zero (cioè dal sistema di base installato), installando software dal sistema FreeBSD Ports o dalla fonte. Le jail di FreeBSD sono quindi meno amichevoli e hanno costi di utilizzo iniziali più elevati.
  • allo stesso modo in cui i contenitori LXC sono persistenti, anche le jail di FreeBSD sono persistenti. Tutte le modifiche rimangono intatte tra gli stivali. Come ho detto, è solo un pezzo di sistema operativo all'interno dello stesso sistema operativo (anche se le versioni del software userland possono differire fino a quando l'ABI non viene mantenuto nel kernel di FreeBSD). Ciò significa che non è possibile eseguire il commit delle modifiche, che vengono eseguite una volta create.
  • da tutto quanto sopra è ovvio il motivo per cui i contenitori FreeBSD non possono avere il loro livello di orchestrazione simile, come fa Docker: non c'è pubblicazione di porte, non ci sono volumi, non ci sono collegamenti o meta-connessioni tra jail diverse. Solo le interfacce fornite dal sistema operativo in rete: socket di rete, socket unix, punti di montaggio comuni.
  • non ci sono limiti, ovviamente, su chi può comunicare con chi all'interno delle carceri di FreeBSD, dato che non ce ne sono in Docker.
  • puoi eseguire immagini di docker native in FreeBSD, perché c'è almeno un supporto parziale di docker in FreeBSD, ma, dato che Linux è gratuito, sconsiglio vivamente (e adoro davvero e profondamente FreeBSD), perché saranno gestiti tramite compatibilità Linux layer (fornito con un modulo del kernel di FreeBSD) che fornisce alcune limitazioni note.

Per maggiori informazioni sulla finestra mobile su FreeBSD. E 'usato per il lavoro all'interno di una prigione (immaginate il doppio isolamento :)), è stato reso possibile da un porto dalle dev principale dei FreeNAS' come volevano usarlo su quel distro. Ecco un loro articolo che ne parla e la vecchia pagina wiki per questo . Da allora, hanno smesso di mantenerlo e sembra non funzionare più. Altro da seguire nel prossimo commento.
Vrakfall,

Ecco l'ultimo post del forum che parla dello stato di Docker in FreeBSD . Prop a Phishfry lì per alcune delle informazioni che ho lasciato cadere qui. È ancora possibile usare la finestra mobile su FreeBSD eseguendolo in un Linux virtualizzato (bhyve, virtualbox, ecc ...) e usando la porta solo client , che è ancora mantenuta e funzionante, per connettersi ad esso. Dopo tutto boot2docker è stato originariamente creato per utilizzare la finestra mobile in quel modo su MacOS.
Vrakfall,

E sappiamo che MacOS è una porta (vergognosa, tosse , questa è la mia parte presunta) di BSD . Ma tutto ciò, ovviamente, è solo per un ambiente di sviluppo e non può in alcun modo essere utilizzato nella produzione. Questo è per coloro che vogliono continuare a lavorare su FreeBSD ed essere in grado di sviluppare cose docker per il loro lavoro / hobby / qualunque cosa.
Vrakfall,

Oh, e ho dimenticato di dire, ma tu l'hai detto, la vecchia docker-freebsdporta stava davvero usando il Linuxulator di FreeBSD .
Vrakfall,

Non è solo che voglio eseguire immagini pubbliche. Ad esempio, se non voglio trascorrere innumerevoli ore per imparare la sicurezza, vado su dockerhub e scrivo in "hardened": hub.docker.com/search?q=hardened&type=image ed eseguo qualcosa da lì. Aumenta notevolmente la produttività rispetto alla costruzione del mio contenitore FreeBSD da zero senza essere un esperto di sicurezza. Ma se hai una soluzione alternativa altrettanto veloce, ti preghiamo di condividere! :-)
inf3rno
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.