a docker alapjai - kifÜ niif program - ipszilon...
Post on 20-May-2020
23 Views
Preview:
TRANSCRIPT
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 1
ADockeralapjai
TakácsÁkos
PTEEgyetemiKönyvtárésTudásközpont
DockeralapjaiVIRTUALIZÁCIÓS MEGOLDÁSOK,ÚTADOCKERIG
TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 22017.09.20.
A virtualizáció előnyei
•Idő,- pénz- éshelytakarékos
•Rugalmasabbgazdálkodásazerőforrásokkal
•Automatikusáthelyezésagépekközött
•Növelhetőrendelkezésreállás
•Tetszőleges,újkörnyezeteklétrehozása,sablonokhasználata,másolásakárpercekalatt
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 3
Virtuálisgépvs.konténerSzempont Virtuálisgép KonténerHardvervirtualizáció van nincsSajátvendégkernel van nincsGazdaOS-től eltérővendégOS
van nincs
Opcionálisizoláció(pl net,pid)
nincs van
Akáregyetlenprocessizolációja
nincs van
Akáregyetlenbinárisizolációja
nincs van
Rendszerindítás percek Akármásodpercek
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 4
Konténerektörténete•1979– chroot rendszerhívásbevezetése aUnix7-ben
•1982– BillJoy beépítetteaBSD-be
•1991– BillCheswick kezdteelhasználniajail elnevezést
•2000– "jail"parancsbevezetéseaFreeBSD-ben
•2005– SunkiadtaaSolaris Containers-t,mint"chroot szteroidon"
•2008– LXC,avagyLinuxContainers megjelenése
•2013febr.– LinuxKernel3.8,teljesUser namespace támogatással->LXCnagyobbnépszerűsége
•2013márc.- Dockermegjelenése
•2013okt.- LMCTFY(Let Me Contain That For You)aGoogle-től
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 5
Névterek•PID:Ahoszton levőprocesszeket nemlátjuk,csakanévtérbenlevőket
•NET: Sajáthálózatiinterfészekanévtérnek.Ahoszt interfészeinemláthatók.
•UTS: Anévtérbenlevőhosztnév nemazonosahoszt hosztnevével.
•MNT: Sajátfájlrendszergyökér
•IPC: Processzek köztikommunikáció.Pl.Osztottmemória
•USER:Anévtérenbelülafelhasználóid-jekülönbözikanévtérenkívülitől
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 6
LXCésLXD•LXC◦ ALinuxkernelképességeithasználjaki◦ Cgroups:Erőforrásoklimitálásaéspriorizálása◦ Namespaces:Izolációegyprocessz szemszögéből(PID, UTS, IPC, NET, MNT, USER)
◦ Virtuálisgépekhelyettesítése.AzOSvanaközpontban,nemazalkalmazás.
•LXD◦ KonténermenedzserazLXC-reépítve◦ EgyszerűsítiazLXChasználatát◦ AzLXDcsak daemon,az lxc parancsotkellhasználni
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 7
LXCésLXDFunkció LXC LXD
Konténerlétrehozása "lxc-create" "lxc init" ("lxc launch")
Konténerindítása "lxc-start" "lxc start" ("lxc launch")
Parancsfuttatásakonténerben
"lxc-execute" "lxc exec"
Konténerleállítása "lxc-stop" "lxc stop"
Konténertörlése "lxc-destroy" "lxc delete"
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 8
DockeralapjaiDOCKERMŰKÖDÉSEÉSALAPFOGALMAK
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 9
ADockerrőláltalában•2013.márciusábanjelentmeg
•0.9-esverzióigazLXC-thasználtaaháttérben
•0.9-esverziótólsajátfejlesztésű"libcontainer"driverés"nsenter"
•1.8-tól"deprecated"azLXCexec driver
•Alkalmazásvirtualizáció
•Microservice-ek
•Deployment ésterheléselosztásegyszerűsítése
•ADockerképességeinekbővítéseegyedidriver-ekkel
•Egyszerűbbreprodukálás
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 10
Komponensek•DockerEngine (DockerCEésDockerEE)• DockerDaemon• DockerClient• DockerAPI
•DockerCompose
•DockerSwarm•DockerMachine
•DockerRegistry (DockerHUB,letölthetőimageként.Tyúkéstojásesete)
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 11
Objektumok:általános•Image:Csakolvashatófájlrendszer+metaadatok(Template)
•Container:EgyImage-ből létrehozottvirtuáliskörnyezetírhatófájlrendszerrel
•Volume:ADockeráltalkezelt,perzisztens,konténerekközöttmegoszthatókönyvtár
•Network:Akonténerekhezrendeltsajáthálózatiinterfészekkezelése.
•Plugin:Egyedinaplózás,volume megoldások
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 12
Objektumok:swarm•Node:EgyklaszterbenlévőDockerHost-ok
•Service:Egyklaszterbenindítottszolgáltatás.Egykonténeregyvagytöbbpéldánybanindítva.
•Stack:Egymássalkapcsolatbanálló,összetartozószolgáltatásokösszessége.
•Config:Egyklaszterbenaservicekonténereivelmegoszthatókonfigurációsfájl.
•Secret:AConfig-hozhasonló,deahálózatontitkosítvaküldöttadatok.Pl jelszavak
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 13
Ábraazarchitektúráról
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 14
Imagerétegek
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 15
Imagerétegek:debian törlés
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 16
Imagerétegek:php7.1törlés
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 17
Imagerétegek:rimelek/php7.1törlés
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 18
Imagerétegek:rimelek/php7.0törlés
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 19
Imagerétegek:php7.0törlés
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 20
Imagenevénekfelépítése
"registry/owner/image:tag"
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 21
Imageésalapértelmezések"registry":docker.io"owner":library"tag":latest
"docker.io/library/hello-world:latest"=
"hello-world"
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 22
Storagedriver
•Aufs
•Btrfs
•Zfs
•Overlay2
•Overlay
•Devicemapper
•Vfs
•Konténerekfájlrendszerénektárolása,összefűzéseésírása
•Blokkszintű és fájlszintű storagedriverek.
•Az AUFSalegrégebbi,denem mindenhol támogatott
•Különböző esetekben eltérő hatékonyságúak
•Alapértelmezés prioritási sorrend szerint
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 23
Logging driver
•None•Json-file
•Syslog
• Journald
•Gelf
•Fluentd
•Awslogs
•Splunk
•Etwlogs
•Gcplogs
•Akonténerbenastandardoutputésstandarderror átirányításánakkezelése
•Alapértelmezetta"json-file"
•BeállíthatóaDockerdaemon-banvagykonténerenként
•A"docker logs"csaka"json-file"és"journald"driverttámogatja.
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 24
Docker,kernelésbiztonság•Névterekéscgroup-ok
•Azösszeskonténereztakerneltkapjameg,nincssajátja
•Legalább3.10-esLinuxkernelkell
•Korlátozhatóképességek(Pl."net_bind_service"stb.)
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 25
DockeralapjaiADOCKERKLIENSMŰKÖDÉSE
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 26
DockerEngine ésutasítások
"docker run hello-world"
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 27
DockerEngine ésutasítások
"docker run httpd:2.4"
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 28
DockerEngine ésutasítások
"docker run -p"8080:80"httpd:2.4"
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 29
DockerEngine ésutasítások
"docker run -d-p"8080:80"httpd:2.4"
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 30
DockerEngine ésutasítások
"docker run -d-p"8080:80"\-v$(pwd):/usr/local/apache2/htdocs \
httpd:2.4"
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 31
DockerEngine ésutasítások
"docker run -d-p"8080:80"\-v$(pwd):/usr/local/apache2/htdocs \
--name httpd-test\httpd:2.4"
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 32
DockerEngine ésutasítások
"docker container ls -a"
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 33
DockerEngine ésutasítások
"docker container stoplaughing_khorana""docker container rm laughing_khorana"
Vagy"docker container rm -f laughing_khorana"
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 34
DockerEngine ésutasítások
"docker container stophttpd-test""docker container starthttpd-test"
Vagy"docker container start-ahttpd-test
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 35
DockerEngine ésutasítások
"docker container logshttpd-test"Vagy
"docker container logs-fhttpd-test
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 36
DockerCompose ésutasítások
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 37
DockerCompose ésutasítások
"docker-compose up -d"
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 38
DockerCompose ésutasítások
"docker-compose logs"
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 39
DockerCompose ésutasítások
"docker-compose down"
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 40
DockerCompose ésutasítások
"docker-compose start"
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 41
DockerCompose ésutasítások
"docker-compose stop"
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 42
DockerSwarm•ADockersajátklasztermenedzsere
•ManagerésWorker gépek(node)
•Szolgáltatásokatindítunk(service)
•Címkézhetőnode-okésszabályok
•MegértiaDockerCompose fájltis
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 43
DockerSwarm
"docker swarm init"
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 44
DockerSwarm
"docker swarm join --token SWMTKN-1-4iyqdryfwvsoe07gnecj6k25vfb7f7o1j7yd0d96qmvw23cwr8-e2zreykvo67tr2igmweqoyg7d
192.168.1.106:2377"
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 45
DockeralapjaiMAGASRENDELKEZÉSREÁLLÁSÉSLEHETŐSÉGEK
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 46
KizárólagDockerrel•Healthcheck definiálásao Konténerlétrehozásakor("docker run","docker create","docker service
create")o ImagelétrehozásakorDockerfile-bano DockerCompose-zal adocker-compose.yml fájlban.
•RestartPolicy•DockerSwarm klasztero Többpéldányfuttatásatöbbgépen.o Hakiesikegynode,vagyleállegykonténer,újraindulakármásikgépen.o Reverse Proxy(HAProxy,NginX proxy)
•Naplózáskülsőközpontiszerverre (Keresés,értesítés)
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 47
Továbbieszközökkel•Speciálisoperációsrendszereko CoreOSo Atomic Host (Fedora,CentoOS,RedHat)o RancherOS
•Szoftvereko Kuberneteso OpenShift (Origin/Enterprise)o Rancher
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 48
DockeralapjaiHOLLEHETDOCKERTFUTTATNI?
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 49
Ingyeneslehetőségek•DockerPlayground (http://play-with-docker.com/)
•SajátVPS(+DockerCloud,1sajátnode ingyenes)•Sajátgépen(akárwindowson)
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 50
Fizetősszolgáltatások•GoogleCompute Engine
•AmazonWebServices
•MicrosoftAzure
•DigitalOcean•OpenStack
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 51
Felhasználtképek•Dockerlogo:• https://www.docker.com/brand-guidelines (DockerMediaKit)
•Imagerétegekésarchitektúrarajza:• https://www.draw.io
•Továbbiképekforrása:• https://pixabay.com
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 52
Ajánlottforrások•https://docs.docker.com
•https://www.youtube.com/user/dockerrun
•https://devopsakademia.hu
•https://netacademia.hu
•https://it-sziget.hu/tag/docker
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 53
Gyakorlat•Avirtuálisgépeketszolgáltatja:Cloud For Education
•Operációsrendszer:Ubuntu 16.04
•Feladatokésszkriptek elérése:http://ld.it-sziget.hu
•Dockerimage-ekforrása• https://hub.docker.com/explore (https://strore.docker.com )• https://hub.docker.com/r/jwilder• https://hub.docker.com/r/itsziget
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 54
KapcsolatTakácsÁkos
E-mail:kapcsolat@it-sziget.hu
Weboldal:https://it-sziget.hu
2017.09.20. TAKÁCSÁKOS- IPSZILONSZEMINÁRIUM- ADOCKERALAPJAI 55
top related