Press "Enter" to skip to content

GOTO 2018 • Containers From Scratch • Liz Rice


[Musica]
mi hai sentito bene, ok?
alcuni problemi tecnici vanno bene così quanti
di voi in questa stanza che sto attualmente usando
i contenitori sollevano le mani e se ne vanno
la tua mano se sei totalmente sicuro
sai davvero quale contenitore è sì
sì così Ho voglia di
contenitori per alcuni anni e io
so che c’è stato un periodo in cui io
tipo di sentito come deserto modo islamico
attraverso l’aria che non mi ha lasciato
con una sorta di sensazione soddisfacente
che ho davvero capito cosa stava succedendo
su e poi ho visto una presentazione da parte
attragga per il trattamento di Julian da IBM
e ha fatto qualcosa di simile a
cosa farò oggi e davvero
mi ha aiutato a capire di cosa stiamo parlando
circa quando parliamo di container
quindi spero che la conoscenza tu sappia
partirai qui con molto
maggiore conoscenza e molto più grande
comprensione di ciò che intendiamo veramente
quando parliamo di contenitori va bene
quindi sto costruendo un container
questo pomeriggio
e lo scriverò in poche righe di
andare se abbiamo qualche programmatore d’oro nel
stanza poche mani in corso che stai per
essere i miei revisori che sono let andando
so quando mi sbaglio, spero
il resto di voi che conosci non lo sa
veramente importa ciò che le lingue e
stiamo andando a costruire un contenitore fuori
tre concetti negli spazi dei nomi di Linux
cambiare la stanza e controllare i gruppi così
Ho intenzione di parlare di quelli
cose diverse sono così come andiamo
lungo
ma prima di iniziare a costruire tutto bene
diamo un’occhiata a cosa succede quando
eseguiamo un container sotto la finestra mobile nel
tipo di modo normale è abbastanza grande
per la schiena che si vede onda le mani è
non abbastanza grande prenderà quello che è
studi bene così possiamo fare qualcosa di simile
ormeggio intorno e volevo esserlo
interattivo e lo rimuoverò
quando è finito e forse mi baso su
l’immagine che brucia e ho gestito uno spettacolo così
Posso iniziare con un’immagine del contenitore e io
può eseguire un comando arbitrario sorta di
all’interno del contenitore dove questo
il contenitore è basato sull’immagine in questo
caso capacità e abbiamo un nome host
all’interno del contenitore che è questo
in realtà l’identità del
contenitore quindi è una sorta di casuale
identità che è stata assegnata se guardo
ai processi in esecuzione all’interno del
contenitore vedo solo i processi
all’interno del contenitore
a meno che numerato a partire da uno
mentre se sono sull’host questo è il
stessa macchina ma dagli host
prospettiva ho un processo molto più alto
i numeri vanno bene così vado a
prova a ricreare qualcosa di simile
questa finestra mobile funziona
lasciami lasciare questo contenitore e il
la prima cosa che farò è che vado
parlare di namespace così e il
namespace è dove limitiamo ciò che il
il processo dell’acqua può vedere così abbiamo appena visto un
contenitore in esecuzione e poteva vedere solo
alcuni dei processi sull’host e
questo perché ha uno spazio dei nomi per
process ID che poteva vedere solo suo
nome host e questo è
di namespacing e abbiamo istituito questi
gli spazi dei nomi che usano Siskel ce ne sono metà
una dozzina di loro dipende dal tuo
particolare versione del kernel Linux
e questa è una parte importante di ciò che rende un
contenitore in un contenitore è
limitando la vista del processo
ha delle cose che stanno succedendo
la macchina host così costruirò io sono
iniziare con spazi dei nomi ma
prima che lo faccia, ricordiamo che lo siamo
cercando di fare il dott. Ron e io lo farei
normalmente fai un nome immagine e poi alcuni
comando e alcuni parametri nel mio andare
programma che posso fare, lo dirò come
andare e poi posso andare a correre
e che compila e gestisce il mio eseguibile
quindi è un po ‘l’equivalente di
finestra mobile Avrò un comando chiamato
correrò diventerà evidente il motivo per cui io
ho bisogno che non passerò in un’immagine
perché io lavorerò, vedrai
Sto andando sorta di do un’immagine tardi
e poi voglio il mio processo containerizzato
per eseguire alcuni comandi arbitrari e lì
potrebbero essere alcuni parametri quindi andrò
avere una funzione principale e la prima cosa
Ho intenzione di fare è guardare il comando
quindi, dove ho corso come argomento uno io
voglio controllare che io abbia corso e se io
questa è una funzione molto felice felice
e se otteniamo qualcos’altro lì per
ora ci accingiamo a classe in un grande mucchio
e sii triste perché non ci piace okay
quindi ora ho bisogno di una funzione fratello e per
il momento in cui tutto ciò che farò è stampare
che cosa è che noi dovremmo essere
dire che ci è stato dato il comando
e parametri e sono nel nostro
argomenti troppo avanti e avanti, quindi facciamolo
verifica che possiamo eseguire questo e ho bisogno
corri come il mio comando e potrei dire andiamo
dì ciao Amsterdam, quindi è tutto finito
il momento è che sta registrando il fatto
che volevo dire ciao risposta che
ma non lo sta facendo ancora così io
è necessario scrivere un po ‘di codice in realtà
corri al mio comando e in Goa lo facciamo
con un comando un pacchetto exec così ho impostato
su una struttura per il mio comando che io
voglio correre e quando non lo faccio davvero
eseguirlo fino a quando ho colpito questo metodo di esecuzione e
quello che volevo correre è qualunque cosa
il comando è passato in
argomento due e forse ce ne sono alcuni
altri parametri pure
davvero non forse devo anche legare
studenti a quel sig. sporco quindi se non lo faccio
Fare questo non possiamo vedere nulla in corso
quindi sarebbe davvero noioso
Posso fare cursori multipli che è molto
eccitante
si notava
Studdard
va bene così ora dovrei avere la capacità di
esegui un comando arbitrario controlliamolo
che posso passare dentro voglio che tu lo faccia
echo ciao Amsterdam e lo fa
echeggiare ciao mostro dannazione e potrei
fare qualcosa come eseguire una shell è detto
noi stiamo facendo funzionare una shell che non puoi davvero
dillo perché quello che sta succedendo c’è
alcuni processi qui questo è il nostro bash
shell che ho appena iniziato così ora ho solo
tipo di contenitore questo comando come me
iniziato e lo faremo da
creare alcuni spazi dei nomi e posso fare
che specificando qui in questo comando
struttura che posso nominare spazi che io
è questo dovrebbe essere il problema
essere struttura
e lo sto passando è chiamato
bandiere clone perché la clonazione è cosa
crea il nuovo processo che stiamo andando
per eseguire il nostro comando arbitrario in e come io
faccio che voglio creare un nuovo siamo
iniziare con la bandiera per Unix
sistema di condivisione del tempo che suona
incredibilmente fantasioso e potente e tu
sai come sarà davvero
significativo ma in realtà tutto ciò che c’è dentro
lo spazio dei nomi del sistema di condivisione del tempo Unix
è il nome host ma questo lo lascerà
noi abbiamo il nostro hostname all’interno del
contenitore in modo che possiamo vedere il suo non può
vediamo cosa sta succedendo sull’host, facciamolo
fai una prova quindi corri di nuovo il mio guscio
e se faccio hostname è ereditato il
il nome host dal mio computer host
basta controllare lo stesso ma posso farlo
cambialo qui
controlla che quello si sia bloccato Sì, sono cambiato
nel mio contenitore senza influenzare
cosa sta succedendo sulla macchina host così
Ho iniziato a containerizzare il mio processo
quindi questa è una stella ma sarebbe davvero
bello se potessi effettivamente utilizzare questo host
nome se potessi impostare il nome host su
prima ho giurato il mio guscio in modo che potessi
vederlo nel prompt perché al
momento è davvero difficile da dire dal
problema se sono nel mio contenitore o
non e si potrebbe iniziare guardando
l’obiettivo e il tipo di metodo per
impostando il nome host e si troverà il set
hostname e dobbiamo inviarlo come a
serie sig. mordere così potremmo pensarci
potrebbe fare qualcosa di simile, ma abbiamo
un problema se chiamo questa funzione qui
dopo aver completato questo metodo di esecuzione
quello non completa fino a dopo che io ho
uscito dal comando che voglio eseguire così
Non posso farlo dopo e non posso davvero
fallo prima da dovunque qui perché io
non ho in realtà anche se io lo specifichi
Voglio il mio spazio dei nomi qui non è fino a quando
all’interno di questo metodo di esecuzione che in realtà
clonare questo nuovo processo e ottenere effettivamente
in là lo spazio dei nomi quindi non posso farlo
prima e non posso farlo dopo così cosa
Lo farò, avrò questo
processo clona un nuovo processo con il nuovo
namespace e poi ho intenzione di creare
un altro processo in cui posso avere
in cui ho intenzione di eseguire il mio comando
quindi ho intenzione di duplicare questo ne ho uno
versione chiamata round e una versione
chiamato bambino così il primo sta andando
per creare il tuo spazio dei nomi ma piuttosto che
dicendo che voglio che tu esegua l’arbitrario
comando Voglio che questo per eseguire questo programma
di nuovo si esegue da solo e possiamo farlo tramite
eseguendo da sé XE il comando che vogliamo
per correre vedremo quello in a
momento
oops giusto e voglio che si chiami
ma invece di aver corso come prima
comando, passerò da bambina ora
ho così quando vengo qui sto andando a
vedi se vedo che il bambino è il comando che sono
chiamerò questa altra versione del
funzionare qui devo fare un po ‘di
va di sintassi eNOS che devo fare
questo in una lista di stringhe e poi
Ho argomenti a favore
quindi lo chiamerò run run
reinvestire il processo ma dentro è nel tuo
seconda volta namespace nella sua intenzione di essere
chiamare il bambino e non è necessario
creare uno spazio dei nomi questa volta, ma lo facciamo
vuoi impostare il nome host perché questo
pro questa volta dovrebbe già
nel nuovo spazio dei nomi in modo diamo
che un vortice così subito possiamo vedere
un paio di cose vediamo il registro
succede due volte perché l’abbiamo chiamato
una volta dentro il corridore e una volta dentro il bambino
ma più interessante il prompt di bash
ha raccolto quel nome host così è
fatto quello che volevo che lo facesse
piuttosto buono e poi possiamo più facilmente
dire se nel contenitore o no
che è piuttosto vantaggioso, quindi se io
ora voglio che PS mi restituisca solo il
processi all’interno del mio contenitore così al
momento non ho ID di processo namespace
e sto ancora vedendo lo stesso tipo di
processi numerati più alti che posso vedere
se lo faccio, se guardo tutti loro, lo faremmo
trova tutti questi processi qui così
come sette sei
Conosco il 76 per un esempio lì
è la mia risposta bash a quello va bene così sono
vedrò nel mio contenitore che voglio
vedi questi a partire da wow lasciamo
fuori di questo e ce n’è un altro di
questi fatti del namespace
nuovo PID freddo per ID processo
e sto andando anche stampare il processo
idea che stessero correndo è ottenere l’ID di processo
lo faremo all’interno e lo faremo anche noi
fare di nuovo all’interno del bambino
che sembra piuttosto promettente diritto
la prima volta stavamo correndo come alcuni alti
processo numerato quando la Gran Bretagna va bene
bambino che dovrebbe essere dentro questo nuovo
ID processo senza spazio abbiamo l’ID uno
questo è esattamente quello che volevamo così a mani
se pensi che io possa fare PS ed è così
lavorerò sì poche mani okay
hai intenzione di deluderti è
trovando ancora quelli altamente numerati
processo ID e la ragione di ciò è
perché PS non ottiene magicamente qualcosa
le informazioni sul processo direttamente
dalla directory corretta della barra
ricordi un minuto fa abbiamo guardato a frosh
proc auto XE così ha un tale crock
informazioni su tutto il running
processi possiamo vederli c’è un
directory per ciascuno dei numerati
processi a cui tornerò
il piede ospite torna all’host per a
minuto se faccio qualcosa come LS – ow
per proc self XE e puoi vederlo
questo è un link al mio laboratorio che esegue LS
quindi ha senso che se lo faccio di nuovo
bene sai che è sempre quello che è
Sarà, ma se io vado a prop auto che possiamo
vedere ogni volta che ottengo un nuovo ID di processo
e prop i cambiamenti di sé mentre iniziamo un nuovo
processo e ci sono tutti i tipi di
informazioni interessanti all’interno di barra
prop per ognuno dei processi che vedremo
un po ‘di più in un momento
PS sta cercando
prop directory così dentro il mio contenitore I
ho bisogno della mia versione di rana al
momento in cui sembrava che la stessa si sa da
all’interno del contenitore sta vedendo il
stesso / proc e questo è dove dovremmo
vieni a ho intenzione di cambiare il percorso di
ciò che il contenitore può vedere così al
momento se guardiamo la directory radice
L’ho segnato con questa rotta
file host mi capita anche di avere una copia
di un file system di abilità e questo ha
ho percorso il percorso per il container così sono
andando a cambiare il percorso per il
contenitore in modo che veda questo come suo
root directory
qui possiamo fare Charice e voglio
quel vagabondo
directory di capacità di essere le mie letture che sono
anche andando a cambiare la directory in
leggi perché perché non farlo è così
in realtà indefinito dove finisci quando
dopo aver fatto lo dovrebbe leggere corro
il mio contenitore di nuovo e ora se guardo dentro
la directory radice instrada il contenitore
è mio è nella mia directory principale I
non riesco a vedere nulla più in alto delle radici
come quello
questo è il mio vero contenitore
Ho limitato la sua visione del tuo filesystem
ma potrei fare qualcosa di interessante
in questo modo se io dormo per un po ‘
all’interno del contenitore dall’host noi
può trovare quel processo di sonno sette otto
quattro zero e se guardiamo di nuovo in / proc
quattro sette otto quattro zero questo è tutto
le informazioni su quel processo di sonno
e c’è una directory radice che abbiamo
uno sguardo a ciò che ci dice e quello
ci mostra che per quel processo la radice
è in realtà il file system che abbiamo appena
montato ora è più o meno il
equivalente di un’immagine del contenitore quando tu
specifica l’immagine che prende una copia del
file system che viene confezionato in quel
immagine sul decomprime in una qualche parte su
la tua macchina host e Charice the
contenitore per vederlo nuovo più velocemente
quindi abbiamo fatto l’ equivalente
va bene così indietro a te il sostegno
directory e torna a EPS perché se tu
ricordati che stiamo cercando di far visualizzare PS
noi solo i processi in esecuzione
dentro il contenitore e l’ho fatto a
leggere in modo che avrei un sostegno
directory all’interno del contenitore e
non c’è niente in esso e se faccio PS
ci dirà di cosa abbiamo bisogno
fai così si scopre che proc è è un
pseudo filesystem è un meccanismo per
il kernel e l’U e uno spazio utente a
condividere informazioni e al momento
Tagliare il raccolto nel mio contenitore nel
il filesystem di beneficenza non ha nulla in esso e
Devo confinare quella directory come proxy
serve un file system in modo che il colonnello
sa che sto andando a popolare con
tutte le informazioni su questi in esecuzione
processi così qui
Posso montare quello molto importante ma io
ottenere questi parametri nell’ordine corretto
come puoi vedere tutto bene e lo farò
riordinare me stesso smontandoli
quando finiamo
assolutamente quando finiamo bene
quindi ho bisogno di eseguirlo di nuovo
e questa volta che cosa ne pensi lo farà
lavoro
le mani fuori pensi che funzioni insieme
la fiducia qui funziona funziona funziona
molto gay numero ID crisi uno grazie
giusto un’altra cosa che abbiamo fatto là era
abbiamo montato un sostegno e possiamo vederlo
quantità all’interno del contenitore che è gentile
di quello che ci aspetteremmo ci sia abbastanza
un sacco di cose montate sul mio host così
Sto solo andando a prendere le cose che
mi riferisco alla rana di casa mia che posso vedere
questo in fondo che è lo stesso
uno che abbiamo montato all’interno del
contenitore possiamo dirlo perché è così
è dentro quel file system che io
significava che ora c’è uno spazio dei nomi per
montare
si chiama New NS e una scuola
namespace a quanto pare questo è stato il primo
dei namespace da inventare e
aggiunto al kernel e credo al
momento in cui non ci hanno pensato veramente
sarebbe mai stato un bisogno per qualsiasi altro
namespace in modo da chiamarlo spazio dei nomi
ma è anche per le mappe che devo anche
fare qualcos’altro qui ora per impostazione predefinita
sotto il sistema D monta una sorta di questo
proprietà ricorsivamente condivisa e al
momento la mia directory root sul mio host
condivide in modo ricorsivo tra tutti
namespace qualsiasi Mouse e io devo
deliberatamente disattivalo con un
insicuro sto per dire bandiere non condivise
per il nuovo spazio dei nomi
Probabilmente sto facendo quello che posso dire di averlo fatto
ha ottenuto questo nuovo spazio gestionale nel mio
contenitore e non voglio che tu condivida
con gli host perché di default è
avrebbe condiviso di nuovo il meglio così se
Lo faccio di nuovo possiamo correre sul monte
all’interno del contenitore possiamo ancora vedere
rana ma in casa non vedo più
quel camion ed è così che possiamo finire
con possiamo evitare di avere come centinaia
di contenitori che ingombrano il nostro cuore
comando principale con tutti i tipi di
informazioni su monta qualsiasi fibra
contenitori che non mi interessa
sulla dall’host potrei scoprire
su di loro guardando nel puntello
directory però così posso fare lo stesso
cosa
con il sonno e trova da quel processo
la prospettiva degli ospiti e se guardo io
penso di aver bisogno di guardare 802 9 questa volta
forse sì , posso ancora vedere l’importo
che questo processo è consapevole di dalla
prospettiva degli host ma non vanno
ingombrando il mio comando principale
ok, quindi abbiamo guardato gli spazi dei nomi
per il sistema mostrato UNIX Tron che è
il nome host per ID processo e
formati e puoi immaginare come
isolando cose come la tua rete
interfacce in modo che solo il tuo contenitore
vede un insieme specifico di rete
interfacce e ID utente e
comunicazioni inter-processo tutto funzionante
lo stesso tipo di modo ok
abbiamo anche visto come funziona e come
limita il contenitore in modo che possa vedere solo a
sottoinsieme del file system che l’host
può vedere e c’è un ultimo tipo di
proprietà di contenitori e questo è
gruppi di controllo se nessuno spazio è limitato
cosa possiamo vedere dall’interno del
contenitore un gruppo di controllo limita il
risorse che possiamo usare al suo interno e
lo facciamo è configurato usando un altro
uno di questi pseudo file system
interfacce quindi è un altro insieme di cosa
sembra directory e file ma noi
può manipolarli per impostare le proprietà
che vogliamo che il kernel capisca
e il kernel scriverà le informazioni
nel file system in modo che possiamo leggere
di nuovo fuori di nuovo e ci potrebbe essere
parlando di cose come la quantità di
memoria che il contenitore può essere
quanto CPU quanto Sherman IO band
la larghezza è consentita e anche quanti
sono stati autorizzati i processi che stiamo per fare
usare come esempio vedere la direzione sbagliata
appena prima di farlo, facciamo un
guarda come hanno quel file system
sembra ed è tipicamente in sis FSC
gruppo mi cambierò in quella
directory e abbiamo una directory per
ognuno dei diversi tipi di controllo
gruppo che possiamo impostare e usiamo
memoria come esempio, quindi entriamo qui
e c’è in realtà un gran numero di
parametri che è possibile impostare correlati a
memoria e potrei guardare, diciamo
memoria limitata da ciò perché è un
numero molto molto molto grande che è
fondamentalmente dicendo per processi predefiniti
può usare tutta la memoria nel sistema
inoltre abbiamo questo docker
directory su cui è presumibilmente installata la finestra mobile
Ho uno sguardo là dentro e al momento
è solo un altro insieme di tutti uguali
i parametri alcuni di questi sono anche ordinati
delle statistiche riportate in
lo spazio utente e vediamo cosa
succede quando eseguiamo un container quindi se io
fare esattamente la stessa cosa che facevo prima con
abilità e io gestisco una shell
[Musica]
e abbiamo un contenitore che inizia
con l’ID zero sette zero C e ora
abbiamo anche una directory all’interno del
struttura della sala di controllo a partire da
zero sette zero C, così il dottore ha creato
un gruppo di controllo fondamentalmente per questo
contenitore ma non lo abbiamo chiesto per nessuno
restrizioni particolari e se lo fossimo
per vedere cosa c’è dentro quella memoria
limitare la lotta non è limitato è
ancora un max se io non voglio nemmeno
conta le cifre di quello vediamo cosa
succede quando facciamo vincolare la memoria
quindi posso dire che la memoria è diciamo 10
megabyte e questa volta è F 4 9 7
l’ identità
abbiamo un gruppo di controllo F 497 e se io
guarda al limite questa volta
in pratica 10 Meg così il dottore ha scritto questo
numero in quel file e questo è come
dice al kernel di limitarlo
contenitore particolare a quella quantità di
memoria quindi faremo lo stesso tipo
di cosa e lo faremo per
il numero di processi effettivamente lo facciamo
basta dare un’occhiata veloce
così dentro la fossa possiamo vedere cose come la
numero massimo ok
bene, so come possiamo guardarlo
a questo dentro la finestra mobile e dovrebbe esserci
il massimo di un maiale sì così di default quando tu
creare un dr. contenitore non c’è
limiti al numero di processi che
può essere generato all’interno di quel processo ma
Creerò un gruppo di controllo
limita il numero di processi e
Ho un po ‘di codice che io
preparato in precedenza per risparmiare un po ‘di
il tempo basta copiarlo e lo faremo
chiamalo da qui
giusto così che sta andando al gruppo C.
directory all’interno di sfondi di successi
dentro quello che va al gruppo di controllo
che sto creando cordless e lo farò
scrivere un fuoco Sto andando scrivere un limite di
20 quindi sto dicendo nel mio gruppo di controllo
ci possono essere solo 20 processi e il
altra cosa importante che sto facendo qui è
questa ultima riga qui dove sto ricevendo
l’ID del processo corrente con quello ottiene PID
e lo sto scrivendo in un file all’interno del mio
gruppo di controllo chiamato C Group frogs and
questo sta aggiungendo il mio approccio sta dicendo questo
processo è ora un membro di questo controllo
gruppo ed è soggetta agli stessi limiti
okay, gestiamola
– Va bene dal mio ospite, dovrei averlo
ho una lista in realtà e facciamo
certo che abbiamo il massimo che noi
aspettatevi sì, quindi dovrebbe essere limitato a 20
processi all’interno di questo segreto e andiamo
controlla di nuovo usando quel trucco con
dormirò troverò l’ID di quello
processo otto cinque sei tre e se noi
guarda in quel profilo segreto otto cinque
sei sei automaticamente aggiunti
lì perché è un processo figlio di
qualunque presumibilmente otto cinque quattro
tre che era il tipo di primo di
questi processi containerizzati dentro i miei
contenitore dovrei solo essere in grado di
creare processi Trinity e non di più
mettiamolo alla prova con uno di
queste
chi sa di cosa si tratta è un difetto
bomba bene, quindi come funziona?
definiamo una funzione chiamata:
e in quella funzione chiamiamo: noi canalizziamo
i risultati nel codice su cui eseguiamo
lo sfondo
questa è la definizione della nostra funzione
e poi lo invochiamo così dovrebbe continuare
chiamandosi creandoti sai solo
per i processi di re per tutti ma
spero che sarà limitato dal mio
gruppo di controllo basta ricontrollare che io sia
correndo all’interno del container va bene
quindi sta provando un po ‘
per sborsare un sacco di processi ed è
chiaramente non in grado di formare tanti
processi come vorrebbe dall’host
prospettiva bene per un inizio posso digitare
perfettamente okay niente di male sembra essere
accadendo in termini di reattività
di casa mia e questo è il mio qui è il mio andare
run main go here sono alcuni defunti
processi che non vedremo mai più di 20
processi in là possiamo guardare i maiali
correnti che ci dovrebbero dire la
numero attuale di processi e lì
dovrebbero essere 20 di loro possiamo vedere se
guardiamo per vedere i gruppi cosa faremo
effettivamente in dispiacere procs segreto lo farà
effettivamente vediamo noi i processi genitore
non vedere che i thread completi, ma se
guardiamo in compiti che dovremmo vederli
probabilmente forse non abbiamo avuto la morte
quelli
comunque possiamo dire dai pin
correnti che non ci sono più di 20
essendo stato creato eppure possiamo continuare a
usa il computer piuttosto che non farlo
stato completamente distrutto da quella forca
la bomba non fa funzionare una bomba difettosa su una macchina
a meno che tu sappia sia limitato da un segreto
è il mio consiglio per te, così abbiamo
visto come viene creato un contenitore
spazi dei nomi e limitato dai gruppi di controllo
abbiamo visto come funziona il file system o
come funzionano le immagini puntandoti su a
sottoinsieme del file system sull’host
abbiamo visto come abbattere una macchina
usando il calcio non farlo se tu
vuoi controllare il codice che troverai
in quello è contenitori di riso da
graffio repo sei decisamente
incoraggiare a farlo e giocare
costruisci il tuo contenitore, se vuoi
per davvero capire come questi
le cose funzionano ora quelli di voi che hanno avuto
le tue mani prima di quella corsa
i contenitori lo usano di nuovo
gli istruttori sollevano la mano e lasciano la tua
consegnare se si sta facendo vulnerabilità
scansione sui tuoi contenitori sì, perché se
ti senti o no è molto buono
idea di scansionare le immagini del contenitore per
exploit noti che la mia christiana è a
strumento gratuito per la scansione del tuo
immagini quindi volevo solo dare un rapido
gridare a quello con quello che realmente
spero che tu
parti con piena fiducia che tu
capire quali contenitori sei ringrazio
molto
[Applausi]
e penso che abbiamo tempo per pochi
domande se sono sì per favore
forse iniziare il primo cosa fare
tu pensi al dr. database in aumento come
positivo cosa penso della finestra mobile
perché un database come Postgres perché no
e tu penso come puoi vedere lì
cosa stai facendo quando corri qualcosa
in un contenitore è ancora un Linux
elaborare la cosa che è diversa è
dove l’archiviazione è così se non altro
questo è lo stato se lo vuoi
archiviazione per persistere devi essere sicuro
che il materiale eseguibile sta cercando
in un sistema di archiviazione persistente se
stavi parlando di un host tu
Potrei montare appena sai Postgres
o qualunque cosa nel contenitore e quello
sarebbe esattamente lo stesso come in esecuzione
Postgres sull’host guardando un locale
sai che il file su disco è la differenza
che ogni volta che iniziamo a parlare
contenitori di cui stiamo davvero parlando
sistemi distribuiti di cui stiamo parlando
quella memoria è da qualche altra parte
probabilmente nel cluster e stiamo dicendo
Voglio essere in grado di creare il mio contenitore
ovunque in quel cluster e volevo
punta a quella memoria e poi sai
ma i meccanismi esistono per farlo così sì
non c’è niente di sbagliato nella corsa
Postgres all’interno di un contenitore è il
Conservazione
stanno dicendo che è una buona idea correre
docker in docker penso sia un bene
ci sono le idee per eseguire docker a Dhaka
pochissime occasioni in cui hai davvero bisogno
per eseguire la finestra mobile nella finestra mobile ci sono
lottando per ricordare quello che sono ma
ora uno dei motivi per cui potresti non farlo
voglio farlo è quello non appena lo fai
che sei si sta eseguendo con la
bandiera privilegiata che significa che non è solo
root è radicato con funzionalità complete
su tutta la macchina eseguirlo per
e l’opera se devi fare qualcosa
particolare per le tue applicazioni no
corri il cappello a cilindro a Dhaka solo per l’inferno
qualsiasi altra domanda
oh, non penso che sia appena entrato
te ne sei andato così grazie , in realtà
grande ma non è stato rotto nulla che avresti
mai secolo credo che sia molto grande
domanda di successo se hai strumenti
come alcuni di loro come Java prima di loro
o non conosco l’albero se non lo sono
sbagliando sai che non sono contenuti
sei a conoscenza di dove stanno ottenendo il
informazioni sulla memoria o sulla CPU
che è stato concesso al contenitore
così per esempio sai come a
Java stai facendo come quantità di memoria
in pratica mostra che l’intera macchina
è disponibile per il processo perché
in origine non conosci solo salato
al livello UNIX solo per limitarlo a
il processo stesso sì, non lo so
abbastanza su come funziona Java, ma lo so
c’è la Java Virtual Machine che sono
non una persona Java
quindi mi sto decisamente muovendo nel mondo
di speculazione qui sul tuo kernel Linux
il tuo kernel Linux sta usando quello
meccanismo per fare cose come limitazione
memoria la mia ipotesi sarebbe che il
macchina virtuale Java Virtual Machine
starebbe afferrando un sacco di ricordi
avanti e poi dividendolo
diversi modi in cui il kernel è no
più consapevole di, ma io sono più o meno
speculare a quel punto chiunque altro
Gli esperti Java vogliono dircelo dovrei
ancora corrono usano ancora il M forte
figlia su metallo nudo dovrei ancora
usa VMs Toronto da bare metal e sort
dipende dall’applicazione e dall’ordinamento
dipende da cosa sei, sai se
stai facendo il tuo centro dati tu
potrebbe usare MS per la capacità di
creare e distruggere davvero i nemici
rapidamente e in modo simile riutilizzare il tuo
macchine abbastanza velocemente potresti correre
contenitori in VM per scopi di isolamento
quindi abbiamo appena visto che i contenitori sono
sai che sono processi di Linux se io
aveva due di quelli che stanno ancora condividendo
lo stesso gatto o tutti i contenitori
all’interno di una macchina virtuale o condividendo il
stesso kernel così
sono armati per dire che è se ci fossero
un kernel exploit che ti permette di
fuggetelo contenerlo bene sapete se
erano un exploit del kernel è condiviso
kernel quindi c’è potenzialmente a rischio
quello dice se posso sfuggire al contenitore I
può vedere gli altri contenitori su quella VM
è molto più difficile sfuggire a una VM sicura o
motivi di sicurezza piuttosto specifici per te
potrebbe dire che voglio correre sui miei contenitori
in separato le fini sono veramente buone
tipo di applicazione, se lo fai
tipo di multi-tenancy in modo da avere gruppi
di persone che sai che stai correndo
codice per loro conto, ma non lo fanno
fidatevi l’un l’altro quindi metteteli tutti
nel proprio VN rende meno esso
lo rende più sicuro per ognuno di questi
inquilini
altre domande
Grazie Liz, grazie mille
[Applausi]

Please follow and like us: