>> [REPRODUCCIÓ DE MÚSICA]
DAVID Malan: D'acord.
Moltes gràcies per haver vingut.
Aquesta és CS50 seminari sobre Docker, 1 tecnologia que nosaltres mateixos i CS50 Nosaltres
han començat a utilitzar des de fa algun temps.
Així que el meu nom és David Malan, I ensenyar Introducció de Harvard
de Ciències de la Computació.
Des de fa algun any, hem estat donant als estudiants
del costat del client descarregable màquines virtuals
en la qual ho fan els seus problemes conjunts.
Que ara hem fet la transició a un entorn de núvol
que realment utilitza aquesta tecnologia anomenat acoblable, de manera que tot el CS50
els estudiants ara tenen el seu contenidors propis Docker
que aviat se sent tot.
>> D'altra banda, en el servidor del CS50 clúster banda, durant molts anys
estàvem usant el servidor del núvol d'Amazon.
Estàvem corrent individu màquines virtuals.
Això també, hem començat a fer la transició a aquestes coses anomenades contenidors Docker
de manera que totes les nostres aplicacions són ara perfectament aïllats uns dels altres.
Així que per això i més, em permetrà introduir els nostres amics, Nico i Mà,
de si mateix Docker.
NICOLA Kabar: Gràcies, David.
Hola a tothom.
El meu nom és Nico i això és Mà.
Som de Docker.
Estarem parlant sobre-- donant-li nois una introducció a Docker,
i espero que, cap al final d'aquesta xerrada vostè pot adonar-
quant pot utilitzar metge oxalat seu desenvolupament d'aplicacions
i desplegament.
>> Per tant, anem a començar de veritat ràpida amb una mica d'informació de fons.
Descrigui el Docker es tracta.
Com funciona?
Com és amb arquitectura?
Vaig a estar fent algunes demostracions.
I Mà serà que descriu com es pot utilitzar Docker
i que li dóna passos específics com es pot començar.
>> Li agrairia si vostès poden sostenir fora de les seves preguntes cap al final.
D'aquesta manera, jo podria estar abordant els preguntes durant la presentació.
Així que anem a deixar una mica de temps cap al final de les preguntes.
>> Així que molt ràpid, que té En realitat mai treballat en Docker,
com jugar amb ell?
Impressionant.
Fresc.
Gran.
Per tant, vaig a començar amb una mica d'història.
Així que allà pels anys 90 i principis de 2000, bàsicament
com a desenvolupadors web, desenvolupadors d'aplicacions, quan anaven a desplegar una aplicació
que estava lligat al metall nu.
Era un servidor.
Era una sola aplicació.
>> Tradicionalment, un exemple seria com una pila LAMP,
on realment calia obrir el conjunt de recursos.
CPU, memòria, disc, xarxa, instal·lació sistema operatiu per sobre d'això.
Si vostè està servint alguna cosa, si en realitat estàs tenint servidor web,
necessita alguna cosa així com Apache per servir.
>> Si la seva aplicació necessitats de base de dades, de revés,
vostè instal·lar alguna cosa com MySQL, i així successivament.
I si vostè necessita el temps d'execució, PHPS i el treball PHP Python hi eren.
I així, de fet, vam haver prendre aquests passos en ordre
per obtenir la seva aplicació en funcionament.
>> Si vostè necessita més poder de còmput que, bàsicament vam haver de trucar al teu noi Operacions
o noia per anar a acumular una nova peça de maquinari, la connexió,
i vostè ha de repetir els processos i una altra.
Així que aquest procés va ser relativament car.
Va ser sens dubte molt lent.
>> Era ineficient.
I en molts casos, la seva maquinari va ser subutilitzat.
Així, en els anys 90 a finals dels anys 2000 i principis, virtualització de maquinari es va trobar.
I com es pot veure aquí, al imatge, bàsicament el que van fer
s'abstreu de la piscina d' recursos de maquinari gratuïtes
i el tipus dels que se serveix a les capes superiors,
en aquest cas, un client de sistema operatiu.
>> I la idea de màquines virtuals van topar
i que realment va ajudar al núvol la computació tal com la coneixem avui dia.
Així que el que volia dir que és pot executar diverses màquines virtuals, que
significava diverses piles, múltiple aplicació en un mateix equip físic.
>> Això sens dubte va ajudar amb el velocitat de desplegament de l'aplicació.
Definitivament amb les despeses.
Vostè no ha d'anar a passar energia, temps i recursos per a prestatge
més servidors per arribar a més de còmput.
I la velocitat de la realitat portar els recursos dalt és molt més ràpid.
Gran.
>> Així solucionem fam al món, ¿no?
No, no realment.
Així, la virtualització tant com sigui en realitat va ajudar, abordar el problema,
el que realment va introduir una gran quantitat de desafiaments.
El hipervisor definitivament introduït una gran complexitat,
el maneig de les subjacents conjunt de recursos.
>> És més pesat en el sentit que abans de que tenia un únic sistema operatiu que
és com tres, quatre concerts al disc.
Ara, si vostè té 10 màquines en un sol maquinari
vostè ha de multiplicar aquesta pel nombre de màquines.
És definitivament més car en un sentit encara
d'obtenir llicències per la tecnologia de virtualització
si no és de codi obert.
>> Però, no anem a prendre totes les crèdit de la virtualització.
Perquè el que passa és que hi ha una gran quantitat de piles i un munt de programari
tecnologies que es van habilitar per la rapidesa amb què van ser capaços d'obtenir
als recursos amb l'auge del núvol.
>> Així, avui dia una sola aplicació o servei pot estar utilitzant qualsevol dels següents temps d'execució
o bases de dades.
PHP, Python, MySQL, Redis, què sé jo.
Així que hi ha una gran quantitat de complexitat en aquest nombre de piles per portar realitat fins
un únic servei.
I juntament amb això, que tenia una gran quantitat de recursos o infraestructura subjacents
tipus de prova de desplegament i, bàsicament, prendre per a la producció d'aquestes aplicacions
que està en desenvolupament.
>> Sobretot perquè els seus equips tenen crescut treballant en aquestes aplicacions,
hi ha una gran quantitat de complexitat i desafiaments
que van ser portats a garantir que el cycle-- bàsicament aplicació
cicle de desenvolupament, és en realitat èxit.
Així, el fet que la seva aplicació està treballant localment al seu local de VM
no garanteix que el seu col·lega esperarà els mateixos resultats.
>> I quan l'equip d'operacions és involucrats en prendre el que tens
i el seu desplegament a la producció escala, també no es garanteix
que això és realment va a succeir.
Així que això ens deixa amb una realitat big-- un munt de signes d'interrogació,
una gran quantitat de reptes en realitat enfrontat de manera similar en els dies.
I això ens va recordar la indústria naviliera.
>> Així que la indústria del transport marítim tenia una gran quantitat de béns,
com es pot veure a la banda esquerra.
I en el costat dret, hi ha un munt de, bàsicament,
maneres d'enviar aquestes mercaderies.
¿I què passa amb la família persones es van reunir i van dir:
hem de estandarditzar la forma en realitat ens enviem aquests béns.
I bum, vostè té l' intermodal de contenidors d'enviament.
>> Així que es van posar d'acord sobre el més mides comunes per al contenidor.
Com manejar-los.
Quin mètode exacte que necessita per carregar i descarregar-los.
I per tant, que realment ajudat a la indústria del transport marítim.
Ara més del 90% d'enfocament transportat a nivell mundial estan utilitzant aquests contenidors.
I això sens dubte disminueix les despeses, així com
els danys causats per la tramesa.
>> Així que vam prendre el mateix model i nosaltres aplicar el programari de desenvolupament de dues aplicacions
arquitectura, en el sentit de que la contenerització
va prendre la virtualització d'un nivell.
Així que en comptes de fer això a nivell de maquinari,
es va fer més d'un operatiu virtualització a nivell de sistema.
>> I ho fem proporcionant a cada aplicació en el seu propi lleuger,
aïllat, executable, i portable, el més important,
una manera d'empaquetar en realitat tot el que necessita per funcionar.
En qualsevol lloc es pot executar.
Així que, independentment de si s'està executant en entorn de desenvolupament local, la seva producció
medi ambient, la seva posada en escena o la prova.
No importa el que subjau infraestructura hi és,
has tingut una aplicació de treball funcional.
>> Així que això és exactament el que, bàsicament, contenidors fan a aquest problema.
Aborden per envasat de tal manera
que pot garantir que es desplega èxit sense importar on viu.
Així que si vostè va com, Bob segueix sent acord.
Si vostè està confós amb el que estic dient, Vaig a ser elaborar en això.
>> Llavors, com ho fa en si Docker cabre en aquesta foto?
Així Docker és una plataforma oberta fàcilment, destacar amb facilitat,
per construir la nau, córrer, acte lleuger portàtil
contenidors d'aplicacions suficients en qualsevol lloc.
Així que si vostè pren una mica d'això parlar, si us plau prengui la següent.
>> Si vostè té la seva aplicació en execució a nivell local i que el va desenvolupar
en l'ús de la plataforma Docker, l'espera que pugui ser desplegat amb èxit.
No importa quina és la infraestructura subjacent.
Així que si vostè té un Docker contenidor i que està funcionant, llavors
sempre que hi ha un Docker motor en l'altre side--
si la seva infraestructura d'operació està usant qualsevol núvol, ja sigui
és AWS, o la de Google o Microsoft, o qualsevol dels núvols públiques,
o la seva pròpia núvol, o la seva pila oberta Núvol, o en el seu entorn local.
>> Si vostè té un motor córrer, que els mitjans
que serà èxit desplegat allà.
Va a estar en execució exactament el mateix comportament
com amb arquitectura que sigui.
Així que si ens fixem at-- estic anant de passar pel que en realitat
estan en els principals components de acoblable.
>> Així motor està al centre de Docker.
És el cervell de.
S'organitza la construcció, el transport, i la implementació i administració
els propis contenidors.
Vaig a cavar en el que fa de motor en més detalls en un segon.
Bàsicament, perquè el doctor es va construir al voltant de les arquitectures client-servidor,
per la qual cosa tal d'interactuar amb el Motor que necessita algun tipus de client.
>> Les imatges són les plantilles en que els contenidors estan construïts a partir de.
Així que les imatges són bàsicament arxius simplement estàtics.
Plantilles i contenidors En realitat, és el que hi ha
s'està executant en temps d'execució que està complint la seva aplicació
o fer alguna cosa amb les dades.
>> Registre s'aborda com un problema de com distribuïu imatges.
Així que si vostè necessita compartir una imatge el que ha treballat al seu col·lega
o l'equip d'operacions, que usar-lo usant Registre.
Podeu descarregar una font oberta versió de la mateixa que Docker va treballar en
i obrir origen.
>> O pot utilitzar Docker ajuda, que és la versió del núvol
empènyer i estirar les imatges que hi ha.
Això és una cosa enorme.
Perquè hi ha una enorme ecosistema al voltant de Docker i és
realment en gran mesura utilitzant el concentrador.
>> Així que per resumir aquí, així és com el minimalista client flux de treball del estibador.
Pot interactuar amb l'amfitrió, en aquest cas es tracta dels dimonis Docker.
És el mateix que la del motor.
Fas ordres com Docker construir, tirar, córrer.
I el mateix motor va i fa aquestes coses.
>> Així que, o interactua amb Registre per tirar d'aquestes imatges
i les capes de les imatges.
Ja sigui si vol implementar, executar contenidors, els maten, llençar-los a baix,
què sé jo.
Així que això resumeix el flux de treball de tots aquests components.
>> Així que si vostè pren tots els component per si mateix.
Així motor, és només un dimoni.
Va a classe de jugar per donar suport en Linux perquè ho fa
requerir certes característiques del nucli de Linux.
Però Windows està treballant en fer el mateix.
Se suposa que ser recolzat Windows Server 2016.
>> Així, de nou, les responsabilitats amb la motor és, o són per, construir imatges.
Estireu les imatges de la Docker Hub o en el seu propi registre.
Si li fan amb aquestes imatges o crear una nova imatge,
vostè pot empènyer els de tornada al registre distribuir-los a altres equips.
>> I tractant de contenir-localment i gestionar el cicle de vida dels envasos
localment.
Està construït al voltant de l'API HTTP REST.
Així que tècnicament sigui possible escriure el seu propi client
sempre i quan s'utilitza HTTP, que és un molt mecanisme estàndard per parlar amb motor
i un munt d'altres serveis.
I es pot veure en aquí que, independentment
del que la infraestructura és a dir, sempre que vostè can-- tot
el que necessita és un operatiu sistema, Linux específicament.
>> I vostè pot instal·lar Docker Motor sobre d'això i tenir-lo funcionant
i orquestra, en el fons, tots aquests aplicació un, dos,
i 3 són contenidors reals.
Així que això és cerca.
Com he esmentat abans, perquè que necessita per interactuar amb el motor,
hi ha el client.
>> Però en realitat quan s'instal·la Docker, es distribueix amb ell.
Pel que s'instal·la, pel que és un sol binari.
I vostè pot fer trucades locals al seu motor de Docker.
O trucades remotes a Motors remotes.
No utilitzeu HTTP, com He esmentat abans.
Hi ha un client GUI anomenada Kitematic de Docker.
I hi ha dubte un munt d'altres persones
que estan construint una gran quantitat de GUIs que bàsicament implementen
alguns HTTP crida per parlar amb motor.
>> Només alguns comandaments d'exemple.
Si ho fa la versió Docker, ho faria li mostrarà la versió del client, així com
la versió del servidor.
Si ho fas informació Docker ho farà dir-li tota la informació
sobre quants contenidors s'estan executant o creats, la quantitat d'imatges que té,
i així successivament i així successivament.
>> Aquí tinc, al costat de última caixa, tinc doctor termini.
Així que això és el que sóc en realitat la creació de contenidor.
I li dono a fer-se ressò Hello World i dormir per un segon i tot això.
I vostè pot veure el resultat. Així que és permanent.
I igual que Linux ps, es pot veure tots els processos i, en aquest cas,
tots els contenidors de funcionament.
Tornar referint d'aquest un el contenidor que acaba de crear.
>> Per tant, això és molt important perquè, com, pot ser una mica confús.
Així que les imatges són de només lectura del col·lecció d'arxius, oi?
Són el que el nostre contenidor es basa en.
Però ells només estan de només lectura.
Així que comences una imatge base amb.
Es tendeix a imitar-OS com, per la qual Ubuntu, CentOS, imatge base que sigui.
I a continuació, s'inicia la construcció a la part superior de la que, certes capes, que conformaran
seva imatge final, el resultat final aquí.
>> I cadascuna d'aquestes capes ha de tenir una imatge de matriu
que fa referència quan es realment vol crear.
Ells són immutables, en el sentit que de només lectura perquè estan,
vostè no pot realment realitzar canvis en ells.
Vostè les pot utilitzar per crear un contenidor d'una imatge, que
cridarà a tots la subsegüent imatges necessàries per sota d'ella.
>> Pot realitzar canvis a una capa diferent,
que és una capa de reescriptura vaig parlar en un segon.
Però cadascuna d'aquestes capes Mai es canvien.
Bàsicament imatges fan servir alguna cosa diu Unió Sistema, UFS arxiu.
I no són diferents d'emmagatzematge backends que utilitzen aquesta tecnologia.
I el que això significa és que reuneix els sistemes d'arxius diferents
perquè es vegin com un.
>> Així que en realitat es pot, a partir de d'una perspectiva de l'aplicació,
vostè té una part superior d'una vista que mostra tots els diferents sistema d'arxius necessari
perquè l'aplicació s'executi.
Però en realitat són, en això, en realitat són en llocs separats
i sent utilitzat per altres recipients, així.
>> Així com es pot veure aquí que si comencem imatge daemon amb
com una imatge de base, i després entrem i afegim [? emacs?]
i llavors això és una altra capa.
I a continuació, afegir Apache.
Aquesta és una altra capa.
I després passem la contenidor d'això.
Cadascuna d'aquestes imatges, cadascuna d'aquestes capes,
és diferent i pot ser reutilitzats per altres contenidors.
>> Si ens fixem en els propis contenidors, que són d'alguna manera com VM-com,
però no es tracta al mateix temps.
Per tant, no tenen, tècnicament, la sistema operatiu complet sota d'ells.
Utilitzen l'únic nucli del sistema operatiu host.
I ells es basen en la part superior.
Ells imiten en la seva aparença.
Ells imiten els seus fitxers arrel sistema del sistema operatiu.
Però en realitat no es repliquen.
>> Així, en lloc de tenir capes immutables, l'última capa, que és el contenidor
sí, és una capa de lectura i escriptura.
Això també s'executa els processos de la seva sol·licitud.
I depèn de les capes subjacents.
Cada contenidor és creat a partir d'una imatge.
I aquesta imatge pot ser un sol capa o imatge de múltiples capes.
>> I vull assenyalar aquí Docker que s'utilitza en gran mesura,
o es basa en el mecanisme de Copy-on-Write.
Així que, en realitat, si no està realitzar canvis en el recipient,
que no va a tenir espai extra.
Així que això és bàsicament com resumir 1 Copy-on-Write.
Es va a accelerar definitivament fins el temps d'arrencada per al contenidor.
Perquè si vostè no està fent canvis en el recipient,
està utilitzant el que ja està allà.
>> Llavors, com funciona realment.
Part d'ella és com, en aquest moment, utilitza almenys dues nucli clau
Característiques.
I això és bàsicament el que creat aquest nivell d'aïllament
per als mateixos contenidors.
Aquestes característiques són espais de noms i cgroups.
Així que els espais de noms són una manera de crear recursos aïllats,
de manera que dins del propi recipient, Només es pot veure certs recursos.
Com ara la interfície de xarxa o els determinats usuaris o el que sigui.
>> I aquests són accessibles únicament i només accessible dins del recipient.
Cgroup en els altres límits laterals com utilitzar aquests recursos.
CPU, la memòria, i el disc.
Quan vostè pot entrar, em significa aquests són en realitat
característiques que es van desenvolupar por-- que són part del nucli de Linux.
Així que no es reinventen ni està recreat per Docker.
Docker els utilitza.
>> El que realment tenia Mèdic aquí és en realitat
creació orquestrada espais de noms per a cada contenidor
i la creació dels cgroups perquè sigui ridículament fàcil crear contenidors
utilitzant aquestes característiques.
Per descomptat, com he descrit anteriorment, la Unió File Systems i copy-on-write veritat
ajudar a la velocitat i el disc utilització dels contenidors.
>> I una vegada que obtingui la seva mans al voltant de Docker,
vas a veure la rapidesa amb què és de fet girar contenidors i llàgrima
cap avall.
Així doncs, si vostè pot preguntar, com pot en realitat es construeix imatges?
Construïm imatges per un procés de creació contenidors i fer canvis, alterar
ells, i els lliurava per convertir-se en una imatge.
>> Així que és un pollastre i referència ou aquí,
perquè tots els recipients vénen a partir d'imatges i imatges vénen
comeses dels contenidors, per la major part.
Hi ha tres opcions per crear imatges.
Vaig a descriure el primer i l'últim.
Vostè pot manualment anar i executar el contenidor
i fer aquests canvis, igual que ho faria en qualsevol VM
o qualsevol sistema operatiu, com com la instal·lació de nous binaris,
afegir sistemes d'arxius, i altres coses.
>> I després es surt, com es pot veure allà.
Estic de sortir del meu contenidor.
I llavors jo estic fent Docker cometre.
I estic cometent això.
Vostè pot veure que el nombre aquí és només un UUID, o el primer 12
bits del UUID.
O bytes del UUID.
I llavors jo sóc a la meva imatge.
Així que ara Docker s'encarrega de enregistrament de tot el que vaig fer
i la creació de la nova imatge basada en això.
>> No vaig a parlar de tarball, però hi ha una manera d'aconseguir una sola,
crear una sola, o fer un sol imatge de la capa usant boles de quitrà.
El que vaig a parlar d'això i el que s'utilitza sobretot avui en dia,
és Dockerfile.
Què és, tècnicament, el primer pas automatitzat per si mateix acoblable.
Així Dockerfiles són les coses que vostè és veurem en un munt de repos GitHub
avui en dia.
És bàsicament un arxiu de text que descriu
exactament com construir una imatge.
>> I per cada línia, es crea en realitat el contenidor, s'executa aquesta línia,
comet aquest contenidor en una nova imatge, i que, bàsicament,
usar-lo per a totes les operacions posteriors fins arribar a l'última imatge.
La qual cosa és bàsicament el acabar objectiu aquí, al final.
I després que exec-- després escriure el seu Dockerfile, que
és purament en el text, vostè fa una Docker construir i el nom de la imatge.
>> I vostè assenyala en aquell que és on el Dockerfile és al.
I vostè pot esperar veure la meva imatge com una imatge que té a nivell local.
Així que això és només una visual exemple del que succeeix.
Comences una imatge base amb.
Corres que en un recipient que no altera la imatge de base en si.
Però en comptes crea un reescriure la capa a la part superior de la mateixa
on es fan els canvis, en el qual et compromets
i es repeteix el procés fins que arribi a la seva imatge final.
>> I en fer-ho, cada dos acumulació procés pot utilitzar les mateixes capes
i la same-- bàsicament Docker emmagatzema en memòria cau aquestes capes.
Així que si jo estic fent el mateix exacta procés, però en lloc d'instal·lar PHP,
Estic instal·lant Python.
Es va a utilitzar Apache i Ubuntu.
Així que d'aquesta manera s'està utilitzant el disc.
Utilitzeu la memòria cau i les imatges disponibles allà.
>> La peça final és del Registre, que és la manera de distribuir les seves imatges.
I, com he esmentat abans, hi ha una versió del núvol de la mateixa,
que és acoblable de concentradors.
Vostè pot anar i explorar una gran quantitat de, bàsicament,
és un producte SAS pública que vostè encara pot tenir imatges privades,
però hi ha una gran quantitat d'imatges públiques.
En realitat és il·limitat, pot empènyer imatges públiques il·limitades allà.
I això és com es pot col·laborar amb el seu equip.
>> Vostè només pot assenyalar-los en vostè Repo i poden descarregar-o la seva imatge
i poden descarregar-lo.
Així que n'hi ha prou amb la xerrada.
Qui vol veure algunes donem realment ràpid?
Tot bé.
Així que aquí el que tinc.
Ca vostès veure la meva pantalla?
Tot bé.
>> Així que tinc Docker córrer aquí, així que pot comprovar és-- Aquesta és la versió
de Docker que s'està executant.
Pot fer informació Docker.
Revisi tota la informació sobre el nombre de imatges que tenen, i així successivament i així successivament.
Docker PS, no hi ha res en marxa.
Concatenat ells.
>> Així que el primer que vull fer és espectacle com es pot executar fàcilment un contenidor.
Així que la bellesa sobre Metge termini, si en realitat
no troba una imatge a nivell local, per defecte es parla amb el doctor Hub
i tracta de trobar-hi i les descàrregues per vostè.
Per tant, inclou una Docker comandament tirar, naturalment.
>> Així que si faig un Docker termini, hola-món.
Així, primer es va per intentar localitzar-lo.
En cas contrari, com es pot veure aquí, no podia trobar a nivell local.
Ara mateix només va treure dues capes això va fer que la imatge i m'ho va passar.
El món hola és bàsicament sortides, el que has fet.
Així que aquest és el més fàcil, un dels exemples més fàcils.
Així que en realitat jo només vaig córrer i acabat el recipient ben ràpid.
>> Si vull run-- i per cert, si Vull moment en què, perquè ho sàpigues,
aquest és el temps que triga a de fet girar i contenir-lo.
Estem mesurant en milisegons.
Així es pot veure el molt que això pot realment ajudarà no només a les proves,
sinó també fins i tot desplegament.
Així que això és una nota ràpida sobre això.
El següent que sóc farem és en realitat
executar una imatge que ja he preparat.
Així finestra acoblable termini.
-d és només una bandera per dir que s'executi en segon pla.
I -p assigna certs ports.
Perquè per defecte, el contenidors estan aïllades,
el que ha d'especificar exactament com es pot accedir-hi.
I en aquest cas, jo estic dient Docker per assignar un port aleatori al host
a un port especificat dins el propi recipient.
I això és bàsicament on el image-- espero que això és la correcta.
>> Així ho fa descàrregues paral·leles cadascuna d'aquestes capes com es pot veure aquí.
Aquestes són de les capes fent la imatge final que he construït.
Va a prendre un segon.
I voilà.
>> Així que ara si faig un ps estibador, que hauria veure alguna cosa que s'està executant.
Hauria veure la identificació, la imatge que aquest es basa apagat,
i el comando que va ser executat.
I la forma d'accedir-hi és bàsicament vas a aquest port.
Així que em vaig a anar A-- aquest és que estic corrent en AWS.
Vaig a anar a 32,769.
Vaya.
I aquí anem.
>> Així que això és en realitat un servei web que mostra
el contenidor està sent serveix de.
Així es pot veure que és de A9F contenidor.
I aquí es tracta de la nom del contenidor.
Així que vostès poden veure la rapidesa amb què era en realitat no només llençar, sinó també
implementar aquest contenidor.
>> Ara el següent pas és buscar a Dockerfiles
i com podem realment construir noves imatges.
Jo només vaig a anar a buscar el clon, 1 MOSTRA Dockerfile basat en l'anterior
diagrama, el d'Apache i PHP.
Tant de bo em recordo de la meva repo.
>> Així que tinc el meu repositori en aquest moment.
I vas a veure això molt en realitat.
No m'instal·lo arbre.
>> Així que, bàsicament vas a veure com la documentació de codi font al voltant
i, a continuació Dockerfile en una com empaquetar en realitat.
Així que és només una mostra de PHP que es fa ressò CS50 hola.
>> Així que si vull executar-lo, Faré acumulació finestra acoblable.
He de construir primer.
Vaig a nomenar-demo_cs50.
I vostè necessita una etiqueta a ella també.
Així que anem a dir-v1 dot.
Així com he descrit abans, el que estic fent avui
és que estic dient Docker anar ús que-- realitat, ho sento, el meu mal.
No prenem una ullada en la pròpia Dockerfile.
Així que les úniques coses d'aquí estan index.php, així com el fitxer Llegiu-me
i un Dockerfile.
>> Així que si vostè fa una ullada a el Dockerfile, pel que és
molt similar al que He descrit anteriorment.
És només un munt de passos que executa Docker
mitjançant la creació i enderrocar contenidors i [? explicant?] ells en una imatge.
>> I, bàsicament, es pot veure- [inaudible] que aquí--
però això és de la repo local.
Es va a anar i index.php grab.
Així que aquest és l'únic codi font que són en realitat part de la seva sol·licitud.
Tot això són bàsicament sistema de canonades de funcionament,
obtenir els paquets correctes i Apache i PHP, i altres coses.
Però això és en realitat prenent index.php i comprometre en el contenidor,
en la imatge.
>> Així que si vas endavant i executar el comanda fent el següent,
es going-- realitat, això pot trigar una mica.
Esperem que no pren massa temps.
Així que vostè pot veure els passos.
I m'animo a anar tornar a casa avui i provar-ho.
I Mà descriurà exactament com es fa això.
Però és realment gran per veure exactament el que està succeint darrere de les escenes.
Però és ridículament fàcil de construir imatges i desplegar usant Docker.
>> Es tracta de prendre una mica més del que esperava.
>> Anem a veure el que passa quan usted-- refredar.
Així com vostè pot veure, cada un d'aquests passos representar línies en el Dockerfile.
I mostra que aquí construït amb èxit aquesta imatge.
>> Així que si ho faig imatges Treballador Portuari, vaig a veure totes les imatges que tinc a nivell local.
I un d'ells es diu el meu nom d'usuari, i el nom de la imatge,
i la representing-- etiqueta sobretot és una etiqueta de versió.
>> Així que ara si vull córrer ella, ho faig termini finestra acoblable.
I jo només vull fer un -P -d. Feu v1.
Així que puc veure ara que tinc dos contenidors de córrer, el que acabo de
creat i el hola Docker un que em van donar passat.
>> I es pot veure aquí que assignat un port diferent.
Així que si vaig a la mateixa IP, però assigno un port: diferent espero que no ho vaig fer.
Així que ara es tracta de l'aplicació que acabo desplegat.
>> Si vull fer canvis, em pot editar ràpidament el codi font
i faci el següent.
Fem hola Harvard.
Així que ara el que està passant a succeir és que jo sóc
va a etiquetar amb un diferent versió-- oh,
No aquesta guy-- Etiquétalo amb una versió diferent.
I vostè va a veure- fan vostès espereu
a prendre la mateixa quantitat de temps per construir una segona vegada o no?
Molt bé, i ningú sap per què?
Parlar alt.
>> AUDIÈNCIA: [inaudible]
>> NICOLA Kabar: És bàsicament ens només canvien un dels passos posteriors.
I per tant es va a utilitzar el memòria cau i utilitzar cadascuna d'aquestes capes.
I això és realment una cosa de la característiques assassines de Docker
és la forma en que realment utilitza i reutilitzacions fer-se càrrec
el seu disc per al mateix peces exactes d'informació.
>> Així que si fem el mateix, va trigar tot just un parell de segons.
Si volem redeploy-- ara Hauria de tenir tres contenidors.
Però aquest està sent que es presenten en ell-- 7 un.
Així que ara és el tercer recipient.
Tothom entén el que acabo de fer aquí?
>> Així que ara si voleu compartir aquesta contenidor molt ràpid amb els amics,
només pot fer-ho finestra acoblable empènyer el nom del contenidor, amb sort.
Així que ara que va a empènyer A-- No em vaig inscriure aquí.
Em sap greu això.
Però jo no vaig a solucionar això ara.
Però, bàsicament, que una ordre és just pujant empènyer.
I tu seràs capaç de veure si vas a Docker Hub
I es connecti, ets serà capaç de veure-ho.
I llavors vostè pot simplement apuntar tot el que està passant
utilitzar aquesta imatge per anar i tiri d'ella.
I poden usar-lo.
>> Amb això, amb sort Jo com que vaig demostrar
el fàcil que és treballar amb Docker.
I jo només vaig a tornar-lo a Mà.
I ell va a partir d'aquí.
>> MÀ MARQUES: Molt bé gràcies, gràcies Nico.
I què?
Així que una de les coses que volgut fer és posar junts
per què això és un important-- què Docker i per què
contenidors són tal novetat important,
una nova manera de fer realment programari.
>> I abans que jo, me'n vaig a només introduir unes poques estadístiques.
No vaig a llegir tot això.
Però això mostra molt sobre com popular aquest es troba a la comunitat.
Les tecnologies bàsiques Docker són de codi obert.
Així que això és Docker motor, Compose, Swarm, un munt d'altres coses
és tot codi obert.
I tenim, què vaig fer dir, 1.300 col·laboradors.
Estàs veient ara, si ens fixem en la nombre d'ofertes de treball, l'última vegada
busquem, que estava a uns 43 mil llocs de treball obertures esmentar específicament
familiaritat amb Docker.
Centenars de milions d'imatges tenen descarregat de Docker Hub.
I, bé, molt més grans estadístiques.
>> Per als que tinguin curiositat, es va ser escrit originalment en Python
i després reescrita a Vés.
I només han passat obrir source-- és només
estat posat en llibertat per prop de 2 i 1/2 anys, el que significa que en 2 i 1/2 anys,
hem vist una enorme quantitat de creixement i la importància
d'aquesta a la comunitat.
I per això vull parlar una mica sobre per què.
>> Així que només reiterar alguns Punts clau de Nico, Docker és ràpid.
És portàtil.
És reproduïble.
I en ella s'estableix un entorn estàndard.
>> I què-- aquesta és la meva merda eradicar monòlits slide-- el
està ajudant a la gent, que una gran quantitat de la indústria del programari
començat a fer al dècada de 2000, s'està movent
a partir d'aquests monolítica aplicacions individuals
on cada dependència havia de ser provat abans que tota l'aplicació tenia
per ser desplegat, que podria significar una pàgina web
Només ens van donar un cop desplegat cada tres mesos, o més,
a un servei molt més arquitectura orientada
o escriu en components diferents de l'arquitectura de l'aplicació.
I així permetent aquests tipus d'arquitectures
que aprofiten Docker s'executi en aquests tres
àrees principals de desenvolupament, que es desenvolupament escrivint el seu codi real,
provar el seu codi, i el seu desplegament.
>> Per què és això important?
Si ets A-- me donar-los un exemple.
Si vostè és una pàgina web desenvolupador dispositiu, ets
el desenvolupament d'un lloc web que es basa en la base de dades que David produeix aquí.
Ho sentim, David, t'estic trucant.
Si volia implementar tota la cosa, que et
d'esperar sota un tradicional desenvolupament de programari monolític
medi ambient, que hauria d'esperar fins que es va fer amb la base de dades
abans de poder realment fer qualsevol canvi en el seu lloc web.
Caldria tornar a implementar el tota sol·licitud per fer-ho.
>> ¿I què Docker l'ajuda a fer és cada treball persona en diferents components
i actualitzar a mesura que avancen, només fer assegurar-se que les interfícies romanen igual.
Així que el que ha fet s'està desplaçada persones
de fer aquests massiva monolítica programari amb arquitectura que
desplegat cada mes a un continu integració i desenvolupament continu
medi ambient.
>> Ara bé, això no és exclusiu de Docker, però Docker fa que sigui molt més fàcil,
el que significa que és, bàsicament, constantment el desplegament.
Parlem amb empreses que són la implementació d'aplicacions de revestiment públics
milers de vegades al dia, ja que veuen el valor en només fer
petits canvis, i sempre ja que s'executa a través de les proves,
deixar que se surti a producció.
Nico sempre em deia anteriorment que en molts entorns,
el cicle de vida normal d'un recipient es mesura en segons,
mentre que una màquina virtual podrien ser mesurat en mesos.
>> Volia prendre un lleuger giri aquí perquè sóc
en una institució educativa.
Volia donar un exemple de com això funciona en una investigació educativa
situació.
Així que hi ha una organització anomenats bioboxes.
Bioboxes fa ADN anàlisi per als investigadors.
>> Ara el que van trobar va ser que quan 1 researcher-- i això no és
la falla de qualsevol particular, researcher-- però quan
un investigador desplegat un algoritme per analitzar,
De manera particular, una mostra d'ADN, escriurien el programari,
publicar això, potser a GitHub o en un altre lloc,
i després van ser fetes.
>> Bé, el problema era que No era necessàriament reproduïble.
Perquè la finalitat de entendre el programari,
se'ls prepara per al entorn exacta desenvolupament
que l'investigador que utilitza, generalment el seu ordinador portàtil o un servidor, o dades
centre que estaven usant.
I, en conseqüència, era molt difícil per reproduir resultats de la investigació quan
l'anàlisi de mostres d'ADN per buscar les coses com incidence--
comparar la incidència d'atacs cardíacs sobre la base de certs gens que estan presents,
per exemple, o el risc de càncer, o qualsevol dels altres tipus de coses.
>> Així que en lloc del que van fer va ser van començar a crear contenidors.
I vostè pot anar a bioboxes.org, que és una gran organització.
I el que fan és que produeixen contenidors basen en la investigació.
I llavors cada vegada que algú envia en la seva mostra, que pugui funcionar.
I té tot l'entorn necessari per executar l'algoritme
i produir els resultats.
I estan trobant que són molt més probable i molt
més ràpidament capaç de retornar resultats a la gent.
>> I de fet, el que la gent està fent s'estan executant les seves pròpies anàlisis d'ADN,
enviar que per bioboxes, i llavors Biobox simplement pren les dades,
corre contra la varietat de diferents contenidors
per veure resultats diferents basat en diferents investigacions.
Així que és una molt poderosa manera en què els investigadors
pot fer una sola instància que permet altres persones per tractar de reproduir
els resultats.
>> Llavors, com començar?
Estem ben suportat en Linux.
Així que si voleu instal·lar res en Linux,
vostè utilitza la seva norma gestor de paquets per a instal·lar.
Si vostè està utilitzant una Debian, és get apt.
CentOS és molt ric.
Fedora Red Hat és rpm-- no me'n recordo.
De totes maneres, tot hi és.
Donem suport a una gran varietat de les distribucions de Linux.
Podeu comprovar aquests cap a fora.
>> També tenim opcions perquè vostè podria funcionar en Mac o Windows.
Ara Nico va esmentar anteriorment que només s'admet en Linux.
Això és cert, ja que necessita un nucli de Linux.
Però, es pot executar en una màquina virtual.
I el que el Docker Toolbox fa, que es pot descarregar,
que et dóna aquesta màquina virtual.
>> Així que només un ràpid 48 segon, crec, descàrrec.
Només busca en Docker Caixa d'eines, descarregar-lo a la Mac,
i aquesta part és de curs accelerat perquè qui
vol veure un senyal de descàrrega?
La instal·lació estàndard de Mac, i llavors estàs
anar a veure a Jerome va posar en la seva contrasenya.
Això és molt emocionant.
I després de que s'instal·li un tot grup d'eines.
I particularment, es farà instal·lar una línia d'ordres.
I llavors es podia veure Jerome provar les seves imatges.
>> I a continuació, sobre aquesta base, es pot veure que YouTube
pensa que Nico li interessa Star Wars, El xou de Jimmy Kimmel,
i crec que Ellen.
Crec que això últim és un clip d'un show d'Ellen.
>> Així Docker Toolbox ve encara amb alguna cosa més que la màquina Docker.
Així Docker màquina és el que ajuda a
es configura una virtuals màquina en el seu Windows
o Mac-- la seva caixa de Windows o Mac box-- i l'ajuda a fer l'aprovisionament,
>> Però també ve amb Eixam i Compose,
que estan dissenyats per ajudar a fer gran desplegaments a escala de la seva aplicació.
Així que si vol gestionar grups de nodes,
raïms de contenidors, compondre i Eixam són el camí a seguir al respecte.
>> I per descomptat que ve amb Docker Motor i Kitematic,
que és la interfície gràfica d'usuari d'escriptori.
També he de dir Docker Registre, que no s'inclou a la caixa d'eines,
però és una manera perquè pugui executar el seu propi registres de Docker Imatges com Docker
Hub, però també pot simplement utilitzar Docker Hub com una manera de fer això.
>> I, gir de la trama, que s'està veient que s'executa en un contenidor.
I així és com estem distribuir les nostres diapositives.
Tota aquesta presentació és en realitat un conjunt de diapositives HTML.
I s'està executant en un contenidor, que pot obtenir por--
>> NICOLA Kabar: Sí, pel que és córrer a temps complet en la meva Max.
I estic presentant d'ella.
I vostè acaba de fer Docker després instal·lar la seva caixa d'eines.
Vostè només pot fer una carrera finestra acoblable i fer-ho, i utilitzar les diapositives.
>> MÀ MARCA: ¿I això és tot.
Així que gràcies a tots per haver vingut.
I estem disposats a respondre a les preguntes.
He de dir abans que ningú deixa existeix samarretes enllà.
Malauradament qualsevol que estigui veient això en Livestream o vídeo,
però tenim Docker Samarretes enllà.
I sabem estudiants Docker, i en la meva experiència,
professors també, com la roba gratis.
>> Així que gràcies a tots per venir.
I segueix-nos a Twitter si vols, o no ho fa.
No m'importa.
També segueixi Docker a Twitter.
Això també és interessant.
I llavors això és tot.
Docker.com.
Gràcies.
>> [Aplaudiments]