Docker (on Windows) Hogyan kerüljük el a csapdákat? Kiss Tibor 2016. 03. 23. 28.08.2018
Napirend Konténer alapok Hogyan kezdtük? Csapdák és kihívások Docker Windows Containers Hogyan kezdtük? Csapdák és kihívások Fontosabb parancsok Hol használjam? Egy kicsit élőben Cikkek, érdekességek – Public–
Docker Nyílt forrású platform Hypervisor nélküli virtualizáció Alkalamazások kezelése Gyorsabb fejlesztés, gyorsabb tesztelés, gyorsabb telepítés Eredetileg Linux-ra 3 éves! Futtat Szállít Fejleszt – Public –
Windows-on Windows Server 2016 Technikai megközelítés Első Windows, amely natív támogatást biztosít a konténerekhez Beta termék - TP4 RTM - 2016 Q3 (talán!) Technikai megközelítés Docker containers – Docker.exe Windows containers – PowerShell Limitált lehetőségek – még Network Repository Időnként stabilitási gondok Egy hatalmas „konfigurációs fájl” – Public –
To infinity and beyond… Kezdetek WS 2016 TP3 Docker.exe és PowerShell kísérletezés Instabil „Kevés” PowerShell parancs WS 2016 TP4 – Első kör Azure-ról letöltött VHD (127GB) - ESX ESX Docker.exe „alapok” Konténerek – IIS Konténer képek Küzdelem a hálózattal WS 2016 TP4 – Második kör ESX , Hyper-V Windows container „alapok” Tervek – konkrét megoldások Projektek To infinity and beyond… – Public –
Kihívások - 1 Nincs átjárás (jelenleg) a két megközelítés között Docker.exe hálózati eszközök korlátozottak Újraindítás után nem mindig indulnak el a konténerek – Docker.exe Van rá „workaround” - config.jason „docker start -a <container name>” kiadása után a konténer lefagy <DEL> gomb nem használható „Docker.exe” konténerben „Paste” által beilleszthető karakterek száma erősen korlátos „Docker.exe” konténerben – Public –
Kihívások - 2 Egy port csak egyszer használható a HOST-on – Load-balancing nehézkesebb docker run -it --name <konténer 1> -p 9001:80 windowsservercore cmd docker run -it --name <konténer 2> -p 9002:80 windowsservercore cmd Nincs fix IP konténer oldalon „Minden” indításkor másik IP-t kap - 172.16.0.x (x > 1) NAT és Tűzfal szabályok IP-hez vannak kötve Get/Add-NetNatStaticMapping Get/New-NetFirewallRule Windows Container által nem támogatott a Docker repository - Docker hub sincs támogatva – Public –
Fontosabb Parancsok Mit csinál? PowerShell Docker.exe Konténer kép keresése Find-ContainerImage - Konténerképek listázása Get-ContainerImage docker images Új konténer létrehozsáa New-Container docker create Konténer elindítása Start-Container docker start Konténer létrehozása és indítása együtt New-Container | Start-Container docker run Csatlakozás futó konténerhez Enter-PSSession docker attach, docker exec Konténer leállítása Stop-Container docker stop Konténer kép létrehozása konténerből New-ContainerImage docker commit Konténer törlése Remove-Container docker rm Konténer kép törlése Remove-ContainerImage docker rmi Konténerek listázása Get-Container docker ps -a Konténer kép importálása Import-ContainerImage docker load Konténer kép exportálása Export-ContainerImage docker save Megosztás csatolása konténerhez Add-ContainerSharedFolder docker run -v <sourcepath>:<destinationpath> Konténer memórialimit beállítása Set-ContainerMemory Konténer hálózati kártya konfigurálás Set-ContainerNetworkAdapter Konténer processzor tulajdonságainak beállítása Set-ContainerProcessor Lemezkezelési beállítások konténerhez Set-ContainerStorage – Public –
Hol van ennek előnye? Konfiguráció és telepítési ráfordítás csökkentése Néhány konténerből álló „telepítő csomag” Fejlesztési folyamat támogatása Környezetek között „csak” a konténereket kell átmásolni „Server consolidation” Kevesebb szerver erőforrás (Virtualizációhoz képest) Fejlesztés felgyorsítása Előre elkészített konténereken „azonnal” lehet tesztelni az új fejlesztést Tesztelési hatékonyság növelése Több tesztelő bevonásakor elegendő példányosítani a konténereket Debug lehetőségek szélesítése Konténerek egy példányán végezni a hibakeresést – Éles környezetben is, a szolgáltatás veszélyeztetése nélkül Alkalmazás izoláció Alkalmazásonként külön konténer „farm” Multi-tenancy – Public –
Konkrét megoldások IIS FARM SQL Instances Domain Controller – Public –
Következő szint Orchestration Kubernetes Mesos(phere) Swarm (Docker Swarm) High-Availability & Clustering Scaling Cloud (Azure) Átjárhatóság Konténer szolgáltatás (pár hete) Knowledgebase Tudásbázis építése Előadások szervezése – Public –
Egy kicsit élőben… – Public –
Cikkek, érdekességek URL Témakör @docker @Azure @MSCloud @mesosphere http://blog.fullsol.net Docker and Windows Containers https://msdn.microsoft.com/en-us/virtualization/windowscontainers/containers_welcome Windows Containers Documentation https://www.docker.com Docker Official https://msdn.microsoft.com/en-us/virtualization/windowscontainers/quick_start/container_setup Configure Windows Container host and environment - WS2016 TP4 https://stefanscherer.github.io/build-your-local-windows-docker-swarm Docker Swarm on Windows http://kubernetes.io Kubernetes https://mesosphere.com Mesosphere @docker @Azure @MSCloud @mesosphere @kubernetesio @stefscherer @FullSolNET – Public –
Kérdések – Public –
THANK YOU! 28.08.2018