Docker

Iš Žinynas.
Jump to navigation Jump to search

Docker yra atviro kodo projektas skirtas automatizuoti programinės įrangos projektams iš programinės įrangos lygmens konteinerių. Docker konteineriai su failų sistemos palaikymu, sisteminėmis programomis bei bibliotekomis - viskas ko jums reikia paleisti serverį. Garantuotai paleisite tai ką ir turite paleisti, nepriklausant nuo sistemos aplinkos kur tai darote.

Docker suteikia papildomą virtualizacijos, automatikos lygmenį operacijų sistemos lygmenyje pačiame Linux. Docker naudoja Linux resursų izoliavimą cgroups, branduolio vardinius susiejimus, ir aufs (angl. union-capable filesystem). Tai leidžia nepriklausomai valdyti kelis konteinerius vienoje Linux sistemoje, neužkraunant jos dideliomis apkrovomis kurių reikalauja virtualios mašinos. Linux branduolio vardinių sąsajų palaikymas izoliuoja kaip programos mato pačia operacijų sistemą, izoliuojami procesai, tinklas, vartotojo id, primontuotos failų sistemos, taip pat neprarandamas cgroups resursų ribojimas (CPU, atmintis, I/O, Tinklas). Nuo docker 0.9 versijos įtraukiama libcontainer biblioteka kuri tiesiogiai bendrauja su virtualizacijos sistemomis esančiomis Linux branduolyje, priedo tai apdorojama per virtualizacijos sąsajas libvirt, LXC (Linux Containers) ir systemd-nspawn.

Docker diegimas Debian sistemose[keisti]

sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg2 \
    software-properties-common
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository \
  "deb [arch=amd64] https://download.docker.com/linux/debian \
  $(lsb_release -cs) \
  stable"
sudo apt-get update
sudo apt-get install docker-ce

Komandų vykdymas dockeryje[keisti]

Vykdyti komandas

docker exec -it <docker_pavadinimas> id

Įjungti shellą

docker exec -it <docker_pavadinimas> bash

Konkretaus konteinerio logų pravalymas[keisti]

truncate -s 0 $(docker inspect --format='{{.LogPath}}' <container_name_or_id>)

arba

echo "" > $(docker inspect --format='{{.LogPath}}' <container_name_or_id>)

Kuriant konteinerį logų limito nurodymas

docker run --log-driver json-file --log-opt max-size=10m --log-opt max-file=3 ...