a docker alapjai - kifÜ niif program - ipszilon...

Post on 20-May-2020

23 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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