Linuxi konteinerid ja Docker GitHub Linkedin Coderwall Stack Overflow Google+

Elu tundus imelihtne ja -ilus hetkest, kui DigitalOceani avastasin. Hiljem tuli välja, et andis veelgi paremaks minna. Docker utiliseerib kõike seda, mida on pakkuda Linuxi konteineritel, kuid lihtsustab nende kasutamist oluliselt.

Linuxi konteinerite idee on sarnane virtuaalmasinate omale - jooksutada tarkvara isoleeritult. Linuxi konteinerid on aga virtuaalmasinatest etemad selle poolest, et nad ei lisa juurde vahekihte. Selle all mõetlen seda, kuidas külalisoperatsioonisüsteemide jaoks riistvara emuleeritakse, millega loomulikult kaasnevad kaod jõudluses. Linuxi konteinerid jagavad kernelit end majutava operatsioonisüsteemiga ja suhtlevad otse füüsilise riistvaraga.

Siit ka mõningad piirangud. Üheks on just nimelt kindel kernel. Hetkel (Docker 0.6.x) on kõige paremini toetatud versioon 3.8 ja operatsioonisüsteemina ainult 64-bitised Debian ja Ubuntu. Dockeri versiooniga 0.7 distro piirang kuuldatavasti langeb ära.

##Keskkonna ülesseadmine

Nagu mainisin, on Dockeri jooksutamiseks vajalik Debiani või Ubuntu 64-bitine distributsioon. Lihtsaim variant on näiteks teha DigitalOceanis spetsiaalselt eelkonfigureeritud virtuaalserver. Teine variant on kohalikku masinasse vajalikud paketid ise installida. Selle kohta on Dockeri kodulehel õpetus, kuidas Dockerit paigaldada erinevatesse keskkondadesse.

##Konteineri loomine

Selle jaoks on variante mitmeid:

##Interaktiivne konteiner

docker run -i -t ubuntu bash

Mis see lihtne rida teeb, on see, et ta käivitab Ubuntu baasimage, eraldab pseudoterminali(-t, tty), jätab standardsisendi lahti(-i, interactive) ja avab bashi shelli - seda kõik selleks, et luua konsooliühendus loodava konteineriga.

Avanenud konsool on väga minimaalne versioon Ubuntust, kuhu tuleb iga tarkvaratükike vastavalt vajadusel ise paigaldada näiteks apt-get abil.

Konsoolisessiooni lõpetamiseks sobib klahvikombinatsioon CTRL+D. Meeles tasub aga pidada seda, et see kaotab kõik tehtud muudatused avatud konteineris.

Selleks, et muudatused säiliksid, tuleb avada uus konsool ja leida äsja loodud konteineri ID:

docker ps

Kui ID on leitud, siis tuleb muudatus committida (üsna sarnane nagu git puhulgi):

docker commit <ID> <nimi>

Sellega antakse konteinerile nimi, mida on näha järgmise käsuga:

docker images

##Portide suunamine

Selleks, et konteiner kuidagi pikemas perspektiivis kasulik saaks olla, peaks ta oskama välismaailmaga suhelda. Näiteid:

##Docker ja tulemüür (UFW)

Kuna Dockeri konteineritele jagatakse privaatseid IP-sid, siis selleks, et nad saaksid välisvõrgule ligi ja ka vastupidi, peab tulemüüris olema portide suunamine lubatud. Näitena UFW seadistamine:

Failis /etc/default/ufw peab olema aktiveeritud järgmine rida:

DEFAULT_FORWARD_POLICY="ACCEPT"

Ning seejärel tuleb tulemüür taaskäivitada:

ufw reload

Selleks, et võrgu kaudu Dockeri konteineritele ligi saaks:

sudo ufw allow 4243/tcp
Täägid: linux  ubuntu  vps  digitalocean  docker 
« OpenVPN server Docker konteinerihalduriga Virtuaalmasina loomine DigitalOceaniga »
comments powered by Disqus