• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    ALMADDocker a kontejnery
    VELDRANE
    VELDRANE --- ---
    Btw image z dockerhubu:

    Hitler uses Docker
    https://youtu.be/PivpCKEiQOQ


    Nejspis to tu uz bylo ale nedalo mi to :)
    VELDRANE
    VELDRANE --- ---
    Nahodou neni uplne od veci premejslet nad tim zda pouzit image treti strany (ofiko/dockerhub) a nebo si udelat vlastni.

    Casto se razi filosofie: Pokud je to v ramci naky subskripce (napr. ofiko redhat image) a muzu to pouzit tak pouzivam v prve rade tyto oficialni, protoze se takrka nemusim o nic starat mam krytou prdel.

    Na druhou stranu ne vzdycky mi takova image pokryva moje potreby, nemusi splnovat treba corporate standards (vetsina images je na postavenq na alpinu, co kdyz je jako corporate standard redhat nebo vlastni build image ?? ), muzu potrebovat moduly (treba nginx) ktery v ofiko buildu nejsou apod.
    Pak si vetsinou postavim image vlastni (klidne to muze bejt obslehnutej dockerfile, ale build delam u sebe). Je ale dobry mit vetsinou v tomhle pripade rozjetou i nakou tu infrastrukturu, kde tyhle image schranujes. Zkratka nejake lepsi repostiory jako je treba quay nebo harbour, kde delas security checky, hlidas jejich velikost pripadne dalsi parametry a to zda jsou company complaint. V tamci tehle build infrastruktury bys asi mel mit i nejake cemtralni repo pro artefakty - binarni casti buildu ktere ktere Tvuj build potrebuje a byly vytvoreny at v ramci nejakyho multistage neni nekym jinym v ramci firmy, ktere opet muzes prohnat proti bezpecnostnim chybam a nebo chybejicim standardum.
    FALLENANGEL
    FALLENANGEL --- ---
    GIOMIKY: tohle je obecně problem a ne jenom v dockerhubu. Image se vytvoří, commitne a hotovo. A jak stárne, tak se proste objevuji diry. Tzn maintainer by mel udělat novou opatchovanou verzi a ty jako 'zakaznik' by jsi mel prejit na novej image. Zkus se dívat po datu. Stavět novej image s mariadb nemá moc valnej smysl, kdyz je ofiko image k dispozici.
    THEODORT
    THEODORT --- ---
    GIOMIKY: tim nemyslim ze bys byl nejakej hloupej nebo tak, jen to jsou image od lidi co maj proste +- podobnou uroven znalosti o dockeru jak ty, a tak tam maj napr. natvrdo vpaleny prihlasovaci udaje protoze jim to tak zatim pro jejich kuteni staci..
    THEODORT
    THEODORT --- ---
    GIOMIKY: visjak, ono to vetsinove jsou image od lidi jako jsi ty
    RUDOLF
    RUDOLF --- ---
    GIOMIKY: známe, proto používáme ofiko repozitáře. Spoustu projektů si je šlechtí, dockehub má vulnerabity scanning out of box. A vždy si můžeš přečíst dockerfile, jak je to poskládaný. Většina věcí je postavená na nějakým ofiko OS image, nad tím si udělá instalaci závislostí pro svoji app. Mysql/Mária/postgres to budou imho takhle - používám ofiko postgres image s pár úpravama v našem repo, mám to proscanovaný od dockerhub a běží na tom produkční databáze.
    MARTEN
    MARTEN --- ---
    GIOMIKY: Za mne zapomen na docker commit. Na zacatku nebyla jina moznost. Ted koukni na Dockerfile, at to automatizujes. Tam vyberes base image a jen napises co se ma instalovat a kdyz se pak image/container spousti, tak jaky je prikaz. Ale pamauj, ze do toho beziciho containeru se neleze pres ssh nebo neco jineho. Muzes, ale pristupuj k otmu jako k blackboxu.
    Priklad jak vypada oficialni mysql image https://github.com/docker-library/mysql/blob/master/8.0/Dockerfile.debian
    A za mne koukni i na ten docker-compose, je to lehci nez porad psat stejne parametry u docker run. Na zacatek muze byt o neco lehci, pokud je chces bezet a nejen buildit.
    SUK
    SUK --- ---
    GIOMIKY: Tak si vezmi dockerfiles jednotlivych imagu, na kterych to cele stoji a postupne zacni buildovat


    ...pokud teda veris cizim binarnim balickum. To kdyztak shanej i makefiles a mozna rovnou nastartuj vim a napis si databazi a kontejnery sam. Idealne i s kompilerem, ktery si zadratujes z tranzistoru na plosnak :D
    HOUMLES
    HOUMLES --- ---
    ty porad nechapes, ze to neni VM :)
    nepotrebujes instalovat debian a pak do nej mysql, stahni si rovnou mysql image a dej mu jeden statickej adresar do /var/lib/mysql
    HOUMLES
    HOUMLES --- ---
    GIOMIKY: nejlepsi je na cely /var/lib/docker zapomenout, protoze tam fakt vubec nic rucne delat nemusis a ze zaloh to klidne muzes excludnout.. pokud to bude po restore systemu cely prazdny tak si docker sam zajisti co potrebuje
    JON
    JON --- ---
    Je to presne jako u vyvoje - vec ktera nejde otestovat je rozbita. Pokud nedokazes otestovat deployment - je rozbitej. Tolik k tomu, ze se neco bude delat jen jednou. :-)
    FALLENANGEL
    FALLENANGEL --- ---
    Ten mindset shift je s kontejnerama znacnej a do jisty miry je to o akceptovani 'pet vs. cattle' principu. Ne jenom co se tyka provozu aplikace, ale environmentu celkove. V posledni dobe vidim trend kdy zakaznici i k samotnejm kontejnerovejm clusterum (Kubernetes, OpenShift,...) pristupujou jako ke cattle. Neco se podela pri upgradu? Smazat cluster, spustit playbook a za chvili je vsechno vyreseny. Velky aktivni dev prostredi? Kazdej vikend smazat, spustit playbook a za chvili uz engineering deployuje z gitu do cistyho clusteru.
    INDIAN
    INDIAN --- ---
    GIOMIKY: mozna si nejdriv over fakta nez neco podobnyho napises ;)
    Docker Desktop WSL 2 backend | Docker Documentation
    https://docs.docker.com/docker-for-windows/wsl/
    (moji widloidni kolegove docker ve WSL normalne pouzivaj)
    MARTEN
    MARTEN --- ---
    GIOMIKY: jestli myslis wsl, tak je nejak podporovane. Relativne kratce. Vic moc nevim, MS nepouzivam uz strasne dlouho
    MARTEN
    MARTEN --- ---
    GIOMIKY: Na kazdem VPS jedu docker, nic jineho uz neinstaluju a je to lepsi a lehci nez instalovat balicky.
    A k prenaseni, muzes pak rozchodit swarm, k8s apod. a klidne mit rovnou ty data replikovany a nic nemuset resit.
    Jinak docker ma i image na zalohovani, staci pak spustit `docker run backup-image....` a jen poslat ktery image a ktera data.
    HOUMLES
    HOUMLES --- ---
    GIOMIKY: ja bych to spis videl, ze bys mel dospet ty a upustit od tvych zajetych koleji :)
    MARTEN
    MARTEN --- ---
    GIOMIKY: no, ona zaloha dockeru se dela uplne jinak a je mnohem snazsi.
    Strasne zjednodusene, pokud budu chapat dobre presne co potrebujes.
    Vytvoris si docker-compose.yml, coz je config sluzby kterou chces bezet. Vynecham jak bude vypadat. Ale je tam jaky image chces pouzit, pripadne nastaveni (treba jaky se ma vytvorit defaultne user v mysql, jake ma mit virtualni site,....). V tom bude i adresar ktery chces mit persistentni, to je jedine co te zajima na zalohu. V docker-compose to bude treba /var/lib/mysql:/volumes/mysql.
    Docker-compose.yml das do gitu, nebo kamkoliv, at se ti to hezky prenasi i k tobe, jestli je treba (nebo v gitu daneho projektu).
    Pokud to chces prenest k sobe, pouze zazalohujes /volumes/* a preneses k sobe. Spustis `docker-compose up` a to je vsechno. Uz se ani nestaras o to ze u sebe nemas mysql, nebo cokoliv jineho. Udela to sam podle toho co bylo na serveru. Nezalohujes nic dalsiho.
    Je to zjednodusene. Do /var/docker je zbytecne chodit, tam jsou proste interni veci.
    RUDOLF
    RUDOLF --- ---
    GIOMIKY: HOUMLES: to je prostě úplně jinej mindset. Lidi jedou podle osvědčených vzorců, dokud se nestřelí do nohy. Do kolegy pravidelně hučím, ať ten postup vždy přepíše do ansible - a odpovědi typu - to budeme dělat jen jednou a tak:-) Jakoby nikdy neproovozoval žádnej systén. No a samo, včera přišel produkťák, že po něm chtěl aby deploynul dalších sedm strojů:-) Oba si uvědomili, že ta investince do ansible asi není blbá a neděláme to abychom si honili naše engineering péra.

    Jinej mindset je třeba vnímat ty OS jako efemerální zdroj, v kterým jen alokuješ to co je skutečně perzistentní a to máš někde pravidelně zálohovaný. Všechno ostatní deployuješ kam potřebuješ a jen obnovíš perzistentní data ze zálohy.

    A nebo migruješ VM, ale pak si ji jednou za mnoho let rozesereš a už ji nedáš dohromady:-)
    HOUMLES
    HOUMLES --- ---
    GIOMIKY: uff, to jako vazne zalohujes VM tak, ze stahnes celej 80GB zatarovanej filesystem? :)
    MARTEN
    MARTEN --- ---
    GIOMIKY: Vyhoda dockeru proti VM je rychlost - predevsim spusteni, protovozovani uz je skoro stejne. A hlavne i to zabere o dost min mista nez VM, jak na disku, tak v pameti a vlastne i na cpu.
    /var/docker te nemusi zajimat, to je jeho interni cache a persistentni data. Hromada jineho sw taky ma cache kterou nechces prochazet.
    .net tam spustis, mssql apod taky. Ale docker neni delan na spusteni celych windows, nebo ani linuxu. To neni vubec jeho cil a nema na to byt pouzit. Docker ani nema nahradit VM, proste jeho ucel je neco jineho.
    Kliknutím sem můžete změnit nastavení reklam