Skip to content

Latest commit

 

History

History
9 lines (5 loc) · 2.15 KB

3.7b.md

File metadata and controls

9 lines (5 loc) · 2.15 KB

Dockerin etuja ja muutama vaihtoehto

Yksi Dockerin käytön eduista on eristää sovellukset toisistaan ja emokäyttöjärjestelmästä. Jokaisella sovelluksella on oma ympäristönsä, jota voi muokata sovelluskohtaisesti, eivätkä sovellukset näe toistensa ympäristöjä. Tästä on apua esimerkiksi jos eri sovellukset tarvitsevat samoista kirjastoista eri versioita eikä rinnakkaisten versioiden asentaminen samaan ympäristöön ole tuettua.

Samaa ongelmaa voi ratkoa virtuaalipalvelimilla. Virtuaaliympäristössä koko käyttöjärjestelmä on virtualisoitu. Tästä on etua eristämisen kannalta, mutta samalla tuhlataan valtavasti resursseja samojen perus- ja tukiprosessien ajamiseen jokaisessa virtuaalikoneessa erikseen. Docker-konteissa ajetaan vain itse sovellusta ja sen käynnistämiä prosesseja. Muutenkin välikerros emoympäristöön on Dockerissa ohuempi kuin täydessä virtualisoinnissa. Esimerkiksi tiedostojärjestelmissä hyödynnetään suoraan emojärjestelmän levy- ja tiedostojärjestelmiä.

Toisaalta Dockeria kevyempiäkin vaihtoehtoja on olemassa. Esimerkiksi FreeBSD:ssä on versiosta 4 lähtien ollut käsite jail, joka eristää prosessin omaan alihakemistopuuhunsa chrootilla. Kaikessa yksinkertaisuudessaan vain katkaistaan hakemistopuu siten, ettei sovelluksen hakemiston ylätasolla .. viittaakkaan ylemmälle tasolle vaan itseensä. Näin sovellus tulkitsee, ettei hakemistopuussa voi liikkua ylemmäksi. Jailissa pitää olla omat /etc, /bin, /lib ym. hakemistonsa kuten Docker-kontissakin. Ne ovat kuitenkin suoraan emojärjestelmän levyjärjestelmän hakemistoja ja tiedostoja.

FreeBSD:n jail rajaa siis vain levyjärjestelmää. Jailille voi antaa oman IP-osoitteen ja hostnamen, mutta esimerkiksi portit ja socketit ovat yhteisiä jaileille ja emojärjestelmälle. Jos joku sovellus käyttää porttia 80 niin muut eivät voi sitä käyttää (samalla IP-osoitteella). Samoin prosessien välinen signalointi ja muu viestintä on mahdollista. Jail kuitenkin rajoittaa mitä sovellus voi lukea tai kirjoittaa levyltä, mikä sulkee yleisimmän tietoturvaongelman. Samalla se ratkaisee aiemmin kuvatun ongelman eri kirjastoversioiden kanssa.