• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    ALMADDocker a kontejnery
    Docker aneb přístupný provoz kontejnerizovaných aplikací
    Docker(Hub), Compose, Swarm, boot2docker, DevOps, LXC, ECS, TumTum a jiné buzzwordy
    Bezpečnost v prostředí kontejnerů
    Related: automatizace [ Centralizovaná správa stanic a ostatních prvků v síti konfigurace/inventarizace/instalace/aktualizace/zalohovani ]
    rozbalit záhlaví
    WOODMAKER
    WOODMAKER --- ---
    REFLEX: pro odretardovani se s pravama si dovolim to popsat:
    na disku jsou inody, kazdy ma sve cislo
    adresar je specialni typ inodu, ktery je oznacen jako adresar a jako obsah ma seznam paru jmeno:cislo inodu
    soubor je specialni typ inodu, ktery je oznacen jako soubor a obsah je obsah souboru

    A inode drzi ony atributy
    mode - typ a prava souboru
    link count - pocet odkazu (kolik na nej odkazuje adresaru - pokud to klesne na 0, inode se smaze)
    uid - cislo uzivatele
    gid - cislo skupiny
    nejaky dalsi malickosti a data

    snad ti to pomuze v reseni

    WOODMAKER
    WOODMAKER --- ---
    REFLEX: ten soubor ma fyzicky v sobe ulozeny dve cisla - uzivatele a skupinu (a par dalsich, whatever). A ty dve cisla tam potrebujes predelat z jednoho systemu na druhej. Group docker asi neni to, co potrebujes.
    REFLEX
    REFLEX --- ---
    WOODMAKER: no to jsme cekal, ale je to normalne pres volumes pripojeny adresar, ale mel problem s opravnenim, mozna kdybych nastavil group slozky na docker...

    jsem na tyhle veci s pravama retard :D
    WOODMAKER
    WOODMAKER --- ---
    REFLEX: root ma pristup ke vsemu, pokud mu to nekam pripojis.
    WOODMAKER
    WOODMAKER --- ---
    REFLEX: zalezi na use-case.
    Normalne sluzby v dockeru, co potkavam, byvaji uvnitr jako root. A mivaji volumes, do kterych jim nikdo nesaha. A bavi se mezi sebou pomoci nejakych API jakoby po siti.

    takze budto udelas kazdej container s uzivatelem, coz mi prijde neprakticky
    Dockerfile:
    FROM ubuntu
    RUN useradd -m --uid 1000 --gid 1000 reflex
    USER reflex:reflex

    nebo nastavis uid:gid tomu uzivateli, co ma pustenej ten kontejner (WOODMAKER)

    nebo, pokud pracujes se souborem, ten soubor zpracujes jako root a pak mu nastavis, aby mel prava podle nejakyho jinyho souboru
    # touch /home/reflex/newfile
    # chmod -R --reference=/home/reflex /home/reflex/newFile
    RAGNAROK
    RAGNAROK --- ---
    REFLEX:
    no reseni to je takovy trochu pojebany ale na jinej zpusob jsem neprisel.
    v docker-compose pak volume nabindujes:
    volumes:
    - ${HOME}/mujdir/:${HOME}/mujdir/:rw
    REFLEX
    REFLEX --- ---
    INDIAN: toto jsem udelal

    RAGNAROK: WOODMAKER: aha, takze v containeru neni ten uzivatel, takze kdyz mam uzivatele reflex pustim docker-compose up tak vlastne v tom containeru je root a ten nema pristup k souborum co jsou pripojene pres volumes protoze vlastnik je reflex :D

    takze reseni je zalozit toho sameho uzivatele v dockeru?
    WOODMAKER
    WOODMAKER --- ---
    REFLEX:
    $ docker run --user $(id -u):$(id -g) ubuntu ls

    Akorat ten user pak uvnitr neexistuje, tak nefunguji veci jako $HOME a tak. Ale s absolutnima cestama by se mely vytvaret soubory se spravnym uid a gid.
    RAGNAROK
    RAGNAROK --- ---
    REFLEX:
    v hostovym systemu pridat nonroot usera do skupiny docker.
    v image (dockerfile) vytvorit nonroot usera se stejnym jmenem a id.
    akorat pak image musis buildit pro kazdyho usera zvlast.
    INDIAN
    INDIAN --- ---
    REFLEX:
    $  sudo usermod -aG docker $USER
    REFLEX
    REFLEX --- ---
    Jak se ma spravne nastavit docker, abych ho nemusel poustet jako sudo a v containeru nebyl problem s pravy a container na pripojenych souborech nevytvarel soubory pod rootem? :)
    GIOMIKY
    GIOMIKY --- ---
    ADMIX: Odstrasujici priklad!
    ADMIX
    ADMIX --- ---


    to nejak neodpovida na otazku proc bys delal to co delas, ale v tom puvodnim prispevku nevidim otazku - resis neco, nebo ses chtel jen podelit o zpusob jak neco nedelat? :D
    GIOMIKY
    GIOMIKY --- ---
    INDIAN: no vidis, zapomnel jsem to nejdulezitejsi...
    $ cat ~/.ssh/config
    Host dokrhost
      HostName 172.17.0.1
      User user
      Port 22
      ServerAliveInterval 60
      LocalForward 127.0.0.1:8080 127.0.0.1:8080
    ... Diky
    INDIAN
    INDIAN --- ---
    GIOMIKY: mozna bych ti pro zacatek odpovedel otazkou - k cemu potrebujes ssh v kontejneru ?
    GIOMIKY
    GIOMIKY --- ---
    Dalsi z cyklu, jak nepouzivat Docker. Tedy mejme Dockerfile. A predpokladejme, ze nechci pouzit presmerovani portu, protoze mi to zasahne do iptables a to se mi nelibit. Tak jsem dosel k reseni, kdyz si presmeruju pres ssh port a potom, napriklad, pristupuju na svuj pypi server.
    Neco jako:
    ...
    RUN nohup bash -c "/usr/bin/autossh -o "StrictHostKeyChecking=no" -M 0 -N -q dokrhost &" && pip3 install --force-reinstall --trusted-host 127.0.0.1 --index-url http://127.0.0.1:8080 myfancypkg
    JON
    JON --- ---
    Mam dotaz k ArgoCD - nevite nekdo o tom, jak/jestli tam jde udelat nejaky transformacni krok mezi repositarem podle ktereho syncuje a tim podle ceho syncuje?
    Treba slej helmcharty z N adresaru v tom repu dohromady, naaplikuj na to nejake templatovani apod.

    Samozrejme to jde udelat stylem: push do repositare A -> tam se pusti CI job, ktery provede ty transformace a pushne to do repositare B -> a podle repositare B to Argo vydeployuje. Ale moc se mi to takhle nelibi.
    JON
    JON --- ---
    MAJA: coz vo to, docker to ma zmaknuty dost dobre, ale lidi jsou kreativni :-)
    MAJA
    MAJA --- ---
    MLEKAR_STEIN: díky za postřehy ...

    čekal jsem, že to má docker nějak zmáknutý - nějaký docker backup/docker restore ale nic moc
    MLEKAR_STEIN
    MLEKAR_STEIN --- ---
    MAJA: zkontroloval bych

    1. jestli někdo neudělal symlink na
    /var/lib/docker případně na některé adresáře v něm. typicky jsem viděl symlink na /var/lib/docker/volumes kterej ukazoval někam na nějaký ssd disk
    2. podíval bych se do /etc/fstab, jestli není na.výše uvedené adresáře udělaný bind
    3. podíval bych se do lokální konfigurace systemd, která je někde v /etc jestli tam někdo néco vesele nepřenastavil.

    specielně bod 3 je docela zákeřný a umí potrápit stylem "jaktožesetopouštístímdleparametrem"

    ještě bych zkontroloval, jestli nějaký kontejner si nevyrábí nepojmenovaný volume pomocí direktivy v dockerfile. a nepoužívá to někdo jako že v tom má data
    viděl jsem takhle provozovaný postgres, kde po restartu se vývoj divil, kam jim zmizely data a že to musej pořád obnovovat.
    VELDRANE
    VELDRANE --- ---
    MAJA: jaky je problem si udelat male PoCko, kde vezmu images, prekopiruju je na cilovyc stroj, udelam kopii volumes za zaloh a predhodim to par testovacim uzivatelum pod jinou ip at mi otestuji zakladni funkce ?
    Kliknutím sem můžete změnit nastavení reklam