Docker: Skirtumas tarp puslapio versijų

Iš Žinynas.
Jump to navigation Jump to search
 
(nerodoma 2 tarpinės versijos, sukurtos to paties naudotojo)
34 eilutė: 34 eilutė:
 
Kuriant konteinerį logų limito nurodymas
 
Kuriant konteinerį logų limito nurodymas
 
  docker run --log-driver json-file --log-opt max-size=10m --log-opt max-file=3 ...
 
  docker run --log-driver json-file --log-opt max-size=10m --log-opt max-file=3 ...
 +
 +
== Tinklas ==
 +
 +
=== Macvlan (ip tame pačiame tinkle) ===
 +
 +
<syntaxhighlight lang="bash">
 +
docker network create -d macvlan --subnet=192.1.14.0/24 --ip-range 192.1.14.240/28 --gateway 192.1.14.254 -o parent=eth0 local-lan
 +
docker run -itd --name Alpine --ip=192.1.14.241 --net=local-lan alpine /bin/sh
 +
docker exec -it Alpine ip addr
 +
exec -it Alpine ping 192.1.14.254
 +
</syntaxhighlight>
 +
 +
=== Visų tinklų gateway ===
 +
 +
<syntaxhighlight lang="bash">
 +
for n in $(docker network ls --format '{{.Name}}'); do
 +
  docker network inspect "$n" --format '{{.Name}} {{range .IPAM.Config}}{{.Gateway}} {{end}}'
 +
done
 +
</syntaxhighlight>
 +
 +
=== Randam kuris tinklas naudoja konkretų gateway ===
 +
 +
<syntaxhighlight lang="bash">
 +
for id in $(docker network ls -q); do
 +
  gw="$(docker network inspect "$id" -f '{{range .IPAM.Config}}{{.Gateway}} {{end}}')"
 +
  if grep -qw '192.168.1.1' <<<"$gw"; then
 +
    docker network inspect "$id" -f '{{.Name}} ({{.Id}})'
 +
  fi
 +
done
 +
</syntaxhighlight>
 +
  
 
[[Category:Virtualizacija]]
 
[[Category:Virtualizacija]]

Dabartinė 23:14, 24 rugsėjo 2025 versija

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 ...

Tinklas[keisti]

Macvlan (ip tame pačiame tinkle)[keisti]

docker network create -d macvlan --subnet=192.1.14.0/24 --ip-range 192.1.14.240/28 --gateway 192.1.14.254 -o parent=eth0 local-lan
docker run -itd --name Alpine --ip=192.1.14.241 --net=local-lan alpine /bin/sh
docker exec -it Alpine ip addr
exec -it Alpine ping 192.1.14.254

Visų tinklų gateway[keisti]

for n in $(docker network ls --format '{{.Name}}'); do
  docker network inspect "$n" --format '{{.Name}} {{range .IPAM.Config}}{{.Gateway}} {{end}}'
done

Randam kuris tinklas naudoja konkretų gateway[keisti]

for id in $(docker network ls -q); do
  gw="$(docker network inspect "$id" -f '{{range .IPAM.Config}}{{.Gateway}} {{end}}')"
  if grep -qw '192.168.1.1' <<<"$gw"; then
    docker network inspect "$id" -f '{{.Name}} ({{.Id}})'
  fi
done