3 komentářů k článku Lokální vývoj s Dockerem nebo Vagrantem?:

  1. ptica

    kompromisy, které někdy překáží
    chtel bych se zeptat na omezeni dockeru v osx a windows – z clanku to vypada, ze docker se hodi na prave vyvoj na lokale, ale „kompromisy, ktere nekdy prekazi“ mi k tomu moc nesedi!?

  2. Michal ValoušekAutor příspěvku

    Re: kompromisy, které někdy překáží
    Na OS X a Windows jede Docker uvnitř VirtualBoxu (podrobnosti se dočteš např. zde: https://docs.docker.com/installation/mac/#learn-the-key-concepts-before-installing). Tzn. že na mateřském systému máš nainstalovaný docker client, který v případě OS X a Windows komunikuje s Docker daemonem uvnitř VirtualBoxu. Problémy nastávají v situacích, kdy začneš řešit porty a adresáře:

    • Pokud si z kontejneru vytáhneš port, tak na něj nesmíš přistupovat přes localhost (např. http://localhost:123), ale přes IP adresu VirtualBoxu, kterou si musíš předem zjistit (např. s pomocí docker-machine ls)
    • Pokud chceš sdílet nějaký obsah dovnitř kontejneru přes „volumes“, tak zdrojová cesta na matce musí ležet někde v HOME složce, cokoli mimo se dovnitř dockeru nedostane (protože technicky se děje sdílení na 2 úrovních: první mezi tvým mateřským systémem a VirtualBoxem, druhé mezi VirtualBoxem a Dockerem)

    Mimo to se někdy dějí věci, které jsem zatím v Linuxu nepotkal a myslím si, že se dějí právě v důsledku využití VirtualBoxu.
    Např. doma jsem poskládal kontejner který komunikoval se vzdáleným serverem. Po příchodu do práce mi nechtěl najet a řval na mě že se mu nedaří přeložit DNS na IP adresu (pomohl restart docker-machine).
    Nebo jsem omylem nasdílel dovnitř kontejneru neexistující soubory, Docker v tomto případě automaticky vytvoří na matce stejně se jmenující prázdné adresáře. Když jsem si své chyby všiml, adresáře odstranil a nakopíroval do lokálního kontextu soubory které tam měly být, nebyl jsem schopen kontejner nahodit a odpovědí mi byla akorát hláška Cannot start container: [8] System error: no such file or directory. Řešením byl opět restart docker-machine.

    Neříkám že vývoj jinde než pod Linuxem není možný, ale budeš tam narážet na drobnosti, které by si na Linuxu s velkou pravděpodobností nepotkal.

Napsat komentář

Tato diskuse je již příliš stará, pravděpodobně již vám nikdo neodpoví. Pokud se chcete na něco zeptat, použijte diskusní server Devel.cz

Zdroj: https://www.zdrojak.cz/?p=15767