ΠΠ°ΠΏΠΎΡΠ½Π° Π½Π° 10 Π°Π²Π³ΡΡΡ Π²ΠΎ Π‘Π»ΡΡΠΌ
ΠΠΎ ΠΎΠ²Π°Π° ΡΡΠ°ΡΠΈΡΠ° ΡΠ΅ Π·Π±ΠΎΡΡΠ²Π°ΠΌΠ΅ Π·Π° ΠΈΡΡΠΎΡΠΈΡΠ°ΡΠ° Π½Π° Docker ΠΈ Π½Π΅Π³ΠΎΠ²ΠΈΡΠ΅ Π³Π»Π°Π²Π½ΠΈ Π°ΠΏΡΡΡΠ°ΠΊΡΠΈΠΈ: Image, Cli, Dockerfile. ΠΡΠ΅Π΄Π°Π²Π°ΡΠ΅ΡΠΎ Π΅ Π½Π°ΠΌΠ΅Π½Π΅ΡΠΎ Π·Π° ΠΏΠΎΡΠ΅ΡΠ½ΠΈΡΠΈ, ΠΏΠ° Π²Π΅ΡΠΎΡΠ°ΡΠ½ΠΎ Π½Π΅ΠΌΠ° Π΄Π° Π±ΠΈΠ΄Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ Π·Π° ΠΈΡΠΊΡΡΠ½ΠΈΡΠ΅ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈ. ΠΠ΅ΠΌΠ° Π΄Π° ΠΈΠΌΠ° ΠΊΡΠ², ΡΠ»Π΅ΠΏΠΎ ΡΡΠ΅Π²ΠΎ ΠΈΠ»ΠΈ Π΄Π»Π°Π±ΠΎΠΊΠΎ ΠΏΠΎΡΠΎΠΏΡΠ²Π°ΡΠ΅. Π‘Π°ΠΌΠΈΡΠ΅ ΠΎΡΠ½ΠΎΠ²ΠΈ.
Π¨ΡΠΎ Π΅ ΠΠΎΠΊΠ΅Ρ
ΠΡΠ΄Π΅ Π΄Π° ΡΠ° ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌΠ΅ Π΄Π΅ΡΠΈΠ½ΠΈΡΠΈΡΠ°ΡΠ° Π·Π° ΠΠΎΠΊΠ΅Ρ ΠΎΠ΄ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡΠ°.
Docker Π΅ ΡΠΎΡΡΠ²Π΅Ρ Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°ΡΠ΅ Π½Π° ΡΠ°ΡΠΏΠΎΡΠ΅Π΄ΡΠ²Π°ΡΠ΅ΡΠΎ ΠΈ ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅ΡΠΎ ΡΠΎ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈΡΠ΅ Π²ΠΎ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΡΡΠ΅Π΄ΠΈΠ½ΠΈ.
ΠΠΈΡΡΠΎ Π½Π΅ Π΅ ΡΠ°ΡΠ½ΠΎ ΠΎΠ΄ ΠΎΠ²Π°Π° Π΄Π΅ΡΠΈΠ½ΠΈΡΠΈΡΠ°. ΠΡΠΎΠ±Π΅Π½ΠΎ Π΅ Π½Π΅ΡΠ°ΡΠ½ΠΎ ΡΡΠΎ Π·Π½Π°ΡΠΈ βΠ²ΠΎ ΡΡΠ΅Π΄ΠΈΠ½ΠΈ ΡΡΠΎ ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π°Π°Ρ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈΠ·Π°ΡΠΈΡΠ°β. ΠΠ° Π΄Π° Π΄ΠΎΠ·Π½Π°Π΅ΠΌΠ΅, Π΄Π° ΡΠ΅ Π²ΡΠ°ΡΠΈΠΌΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ. ΠΠ° ΠΏΠΎΡΠ½Π΅ΠΌΠ΅ ΡΠΎ Π΅ΡΠ°ΡΠ° ΡΡΠΎ ΡΠ°Ρ ΠΊΠΎΠ½Π²Π΅Π½ΡΠΈΠΎΠ½Π°Π»Π½ΠΎ ΡΠ° Π½Π°ΡΠ΅ΠΊΡΠ²Π°ΠΌ βΠΠΎΠ½ΠΎΠ»ΠΈΡΠ½Π° Π΅ΡΠ°β.
ΠΠΎΠ½ΠΎΠ»ΠΈΡΠ½Π° Π΅ΡΠ°
ΠΠΎΠ½ΠΎΠ»ΠΈΡΠ½Π°ΡΠ° Π΅ΡΠ° Π΅ ΡΠ°Π½ΠΈΡΠ΅ 2000-ΡΠΈ, ΠΊΠΎΠ³Π° ΡΠΈΡΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ Π±Π΅Π° ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ½ΠΈ, ΡΠΎ Π΅Π΄Π΅Π½ ΠΊΡΠΏ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡΠΈ. Π Π°Π·Π²ΠΎΡΠΎΡ ΡΡΠ°Π΅ΡΠ΅ Π΄ΠΎΠ»Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅. ΠΠΎ ΠΈΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅, Π½Π΅ΠΌΠ°ΡΠ΅ ΠΌΠ½ΠΎΠ³Ρ ΡΠ΅ΡΠ²Π΅ΡΠΈ, ΡΠΈΡΠ΅ Π³ΠΈ Π·Π½Π°Π΅Π²ΠΌΠ΅ ΠΏΠΎ ΠΈΠΌΠ΅ ΠΈ Π³ΠΈ ΡΠ»Π΅Π΄Π΅Π²ΠΌΠ΅. ΠΠΌΠ° Π΅Π΄Π½Π° ΡΠ°ΠΊΠ²Π° ΡΠΌΠ΅ΡΠ½Π° ΡΠΏΠΎΡΠ΅Π΄Π±Π°:
ΠΠΎΠΌΠ°ΡΠ½ΠΈΡΠ΅ ΠΌΠΈΠ»Π΅Π½ΠΈΡΠΈ ΡΠ΅ Π΄ΠΎΠΌΠ°ΡΠ½ΠΈ ΠΆΠΈΠ²ΠΎΡΠ½ΠΈ. ΠΠΎ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ½Π°ΡΠ° Π΅ΡΠ°, Π³ΠΈ ΡΡΠ΅ΡΠΈΡΠ°Π²ΠΌΠ΅ Π½Π°ΡΠΈΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠΈ ΠΊΠ°ΠΊΠΎ ΠΌΠΈΠ»Π΅Π½ΠΈΡΠΈΡΠ°, Π½Π΅Π³ΡΠ²Π°Π½ΠΈ ΠΈ Π½Π΅Π³ΡΠ²Π°Π½ΠΈ, Π΄ΡΠ²Π°ΡΡΠΈ Π΄Π°ΠΌΠΊΠΈ ΠΏΡΠ°ΡΠΈΠ½Π°. Π Π·Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΠΎ ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΡΠΎ ΡΠ΅ΡΡΡΡΠΈΡΠ΅, ΠΊΠΎΡΠΈΡΡΠ΅Π²ΠΌΠ΅ Π²ΠΈΡΡΡΠ΅Π»ΠΈΠ·Π°ΡΠΈΡΠ°: Π·Π΅Π΄ΠΎΠ²ΠΌΠ΅ ΡΠ΅ΡΠ²Π΅Ρ ΠΈ Π³ΠΎ ΠΏΡΠ΅ΡΠ΅ΠΊΠΎΠ²ΠΌΠ΅ Π½Π° Π½Π΅ΠΊΠΎΠ»ΠΊΡ Π²ΠΈΡΡΡΠ΅Π»Π½ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ, ΡΠΎ ΡΡΠΎ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈΠ²ΠΌΠ΅ ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡΠ° Π½Π° ΠΎΠΊΠΎΠ»ΠΈΠ½Π°ΡΠ°.
Π‘ΠΈΡΡΠ΅ΠΌΠΈ Π·Π° Π²ΠΈΡΡΡΠ΅Π»ΠΈΠ·Π°ΡΠΈΡΠ° Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° Ρ ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡ
Π‘ΠΈΡΠ΅ Π²Π΅ΡΠΎΡΠ°ΡΠ½ΠΎ ΡΠ»ΡΡΠ½Π°Π»Π΅ Π·Π° ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° Π²ΠΈΡΡΡΠ΅Π»ΠΈΠ·Π°ΡΠΈΡΠ°: VMware, VirtualBox, Hyper-V, Qemu KVM ΠΈΡΠ½. Π’ΠΈΠ΅ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π°Π°Ρ ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡΠ° Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΡΠΎ ΡΠ΅ΡΡΡΡΠΈ, Π½ΠΎ ΠΈΠΌΠ°Π°Ρ ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠΈ. ΠΠ° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ Π²ΠΈΡΡΡΠ΅Π»ΠΈΠ·Π°ΡΠΈΡΠ°, ΠΏΠΎΡΡΠ΅Π±Π΅Π½ Π²ΠΈ Π΅ Ρ ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡ. Π Ρ ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡΠΎΡ Π΅ ΡΠ΅ΡΡΡΡ ΠΏΡΠ΅ΠΊΡ Π³Π»Π°Π²Π°. Π ΡΠ°ΠΌΠ°ΡΠ° Π²ΠΈΡΡΡΠ΅Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π° Π΅ ΠΎΠ±ΠΈΡΠ½ΠΎ ΡΠ΅Π» ΠΊΠΎΠ»ΠΎΡ - ΡΠ΅ΡΠΊΠ° ΡΠ»ΠΈΠΊΠ° ΠΊΠΎΡΠ° ΡΠΎΠ΄ΡΠΆΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π΅Π½ ΡΠΈΡΡΠ΅ΠΌ, Nginx, Apache, Π° ΠΌΠΎΠΆΠ΅Π±ΠΈ ΠΈ MySQL. Π‘Π»ΠΈΠΊΠ°ΡΠ° Π΅ Π³ΠΎΠ»Π΅ΠΌΠ° ΠΈ Π²ΠΈΡΡΡΠ΅Π»Π½Π°ΡΠ° ΠΌΠ°ΡΠΈΠ½Π° Π΅ Π½Π΅Π·Π³ΠΎΠ΄Π½Π° Π·Π° ΡΠ°Π±ΠΎΡΠ°. ΠΠ°ΠΊΠΎ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ°, ΡΠ°Π±ΠΎΡΠ°ΡΠ° ΡΠΎ Π²ΠΈΡΡΡΠ΅Π»Π½ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ Π±Π°Π²Π½Π°. ΠΠ° Π΄Π° ΡΠ΅ ΡΠ΅ΡΠΈ ΠΎΠ²ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° Π²ΠΈΡΡΡΠ΅Π»ΠΈΠ·Π°ΡΠΈΡΠ° Π±Π΅Π° ΠΊΡΠ΅ΠΈΡΠ°Π½ΠΈ Π½Π° Π½ΠΈΠ²ΠΎ Π½Π° ΡΠ°Π΄ΡΠΎΡΠΎ.
Π‘ΠΈΡΡΠ΅ΠΌΠΈ Π·Π° Π²ΠΈΡΡΡΠ΅Π»ΠΈΠ·Π°ΡΠΈΡΠ° Π½Π° Π½ΠΈΠ²ΠΎ Π½Π° ΡΠ°Π΄ΡΠΎ
ΠΠΈΡΡΡΠ΅Π»ΠΈΠ·Π°ΡΠΈΡΠ°ΡΠ° Π½Π° Π½ΠΈΠ²ΠΎ Π½Π° ΠΊΠ΅ΡΠ½Π΅Π» Π΅ ΠΏΠΎΠ΄Π΄ΡΠΆΠ°Π½Π° ΠΎΠ΄ ΡΠΈΡΡΠ΅ΠΌΠΈ OpenVZ, Systemd-nspawn, LXC. ΠΠΏΠ΅ΡΠ°ΡΠ»ΠΈΠ² ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° ΡΠ°ΠΊΠ²Π° Π²ΠΈΡΡΡΠ΅Π»ΠΈΠ·Π°ΡΠΈΡΠ° Π΅ LXC (Linux Containers).
LXC Π΅ ΡΠΈΡΡΠ΅ΠΌ Π·Π° Π²ΠΈΡΡΡΠ΅Π»ΠΈΠ·Π°ΡΠΈΡΠ° Π½Π° Π½ΠΈΠ²ΠΎ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π΅Π½ ΡΠΈΡΡΠ΅ΠΌ Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΎΡΠΈ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΈΠΎΡ ΡΠΈΡΡΠ΅ΠΌ Linux Π½Π° Π΅Π΄Π΅Π½ ΡΠ°Π·ΠΎΠ». LXC Π½Π΅ ΠΊΠΎΡΠΈΡΡΠΈ Π²ΠΈΡΡΡΠ΅Π»Π½ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ, ΡΡΠΊΡ ΡΠΎΠ·Π΄Π°Π²Π° Π²ΠΈΡΡΡΠ΅Π»Π½Π° ΡΡΠ΅Π΄ΠΈΠ½Π° ΡΠΎ ΡΠΎΠΏΡΡΠ²Π΅Π½ ΠΏΡΠΎΡΠ΅ΡΠ΅Π½ ΠΏΡΠΎΡΡΠΎΡ ΠΈ ΠΌΡΠ΅ΠΆΠ΅Π½ ΡΡΠ΅ΠΊ.
ΠΠΎ ΡΡΡΡΠΈΠ½Π° LXC ΡΠΎΠ·Π΄Π°Π²Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ. ΠΠΎΡΠ° Π΅ ΡΠ°Π·Π»ΠΈΠΊΠ°ΡΠ° ΠΏΠΎΠΌΠ΅ΡΡ Π²ΠΈΡΡΡΠ΅Π»Π½ΠΈΡΠ΅ ΠΌΠ°ΡΠΈΠ½ΠΈ ΠΈ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈΡΠ΅?
ΠΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΡ Π½Π΅ Π΅ ΠΏΠΎΠ³ΠΎΠ΄Π΅Π½ Π·Π° ΠΈΠ·ΠΎΠ»ΠΈΡΠ°ΡΠ΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅: Π²ΠΎ ΡΠΈΡΡΠ΅ΠΌΠΈΡΠ΅ Π·Π° Π²ΠΈΡΡΡΠ΅Π»ΠΈΠ·Π°ΡΠΈΡΠ° Π½Π° Π½ΠΈΠ²ΠΎ Π½Π° ΠΊΠ΅ΡΠ½Π΅Π» ΡΠ΅ Π½Π°ΠΎΡΠ°Π°Ρ ΡΠ°Π½Π»ΠΈΠ²ΠΎΡΡΠΈ ΡΡΠΎ ΠΈΠΌ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π°Π°Ρ Π΄Π° ΠΈΠ·Π±Π΅Π³Π°Π°Ρ ΠΎΠ΄ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΡ Π΄ΠΎ Π΄ΠΎΠΌΠ°ΡΠΈΠ½ΠΎΡ. ΠΠ°ΡΠΎΠ°, Π°ΠΊΠΎ ΡΡΠ΅Π±Π° Π΄Π° ΠΈΠ·ΠΎΠ»ΠΈΡΠ°ΡΠ΅ Π½Π΅ΡΡΠΎ, ΠΏΠΎΠ΄ΠΎΠ±ΡΠΎ Π΅ Π΄Π° ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ Π²ΠΈΡΡΡΠ΅Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π°.
Π Π°Π·Π»ΠΈΠΊΠΈΡΠ΅ ΠΏΠΎΠΌΠ΅ΡΡ Π²ΠΈΡΡΡΠ΅Π»ΠΈΠ·Π°ΡΠΈΡΠ°ΡΠ° ΠΈ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈΠ·Π°ΡΠΈΡΠ°ΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π²ΠΈΠ΄Π°Ρ Π½Π° Π΄ΠΈΡΠ°Π³ΡΠ°ΠΌΠΎΡ.
ΠΠΎΡΡΠΎΡΠ°Ρ Ρ
Π°ΡΠ΄Π²Π΅ΡΡΠΊΠΈ Ρ
ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡΠΈ, Ρ
ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡΠΈ Π½Π° Π²ΡΠ²ΠΎΡ Π½Π° ΠΠ‘ ΠΈ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ.
Π₯Π°ΡΠ΄Π²Π΅ΡΡΠΊΠΈΡΠ΅ Ρ ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡΠΈ ΡΠ΅ ΠΊΡΠ» Π°ΠΊΠΎ Π½Π°Π²ΠΈΡΡΠΈΠ½Π° ΡΠ°ΠΊΠ°ΡΠ΅ Π΄Π° ΠΈΠ·ΠΎΠ»ΠΈΡΠ°ΡΠ΅ Π½Π΅ΡΡΠΎ. ΠΠΈΠ΄Π΅ΡΡΠΈ Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π°Ρ Π½Π° Π½ΠΈΠ²ΠΎ Π½Π° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡΠΈ ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈ.
ΠΠΌΠ° Ρ ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡΠΈ ΠΊΠ°ΠΊΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°, ΠΈΠΌΠ° ΠΈ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ ΠΈ Π·Π° Π½ΠΈΠ² ΡΠ΅ Π·Π±ΠΎΡΡΠ²Π°ΠΌΠ΅ ΠΏΠΎΠ½Π°ΡΠ°ΠΌΡ. Π‘ΠΈΡΡΠ΅ΠΌΠΈΡΠ΅ Π·Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈΠ·Π°ΡΠΈΡΠ° Π½Π΅ΠΌΠ°Π°Ρ Ρ ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡ, Π½ΠΎ ΠΏΠΎΡΡΠΎΠΈ Container Engine ΠΊΠΎΡ ΡΠΎΠ·Π΄Π°Π²Π° ΠΈ ΡΠΏΡΠ°Π²ΡΠ²Π° ΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ. ΠΠ²Π°Π° ΡΠ°Π±ΠΎΡΠ° Π΅ ΠΏΠΎΠ»Π΅ΡΠ½Π°, ΡΠ°ΠΊΠ° ΡΡΠΎ ΠΏΠΎΡΠ°Π΄ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΠ° ΡΠΎ ΡΠ°Π΄ΡΠΎΡΠΎ ΠΈΠΌΠ° ΠΏΠΎΠΌΠ°Π»ΠΊΡ Π½Π°Π΄Π·Π΅ΠΌΠ½ΠΈ ΡΡΠΎΡΠΎΡΠΈ ΠΈΠ»ΠΈ Π²ΠΎΠΎΠΏΡΡΠΎ Π½Π΅ΠΌΠ°.
Π¨ΡΠΎ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π·Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈΠ·Π°ΡΠΈΡΠ° Π½Π° Π½ΠΈΠ²ΠΎ Π½Π° ΡΠ°Π΄ΡΠΎ
ΠΠ»Π°Π²Π½ΠΈΡΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΊΠΎΠΈ Π²ΠΈ Π΄ΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Π°Ρ Π΄Π° ΠΊΡΠ΅ΠΈΡΠ°ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ ΠΎΠ΄ Π΄ΡΡΠ³ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ ΡΠ΅ ΠΡΠΎΡΡΠΎΡΠΈ ΡΠΎ ΠΈΠΌΠΈΡΠ° ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π½ΠΈ Π³ΡΡΠΏΠΈ.
ΠΡΠΎΡΡΠΎΡΠΈ ΡΠΎ ΠΈΠΌΠΈΡΠ°: PID, Networking, Mount ΠΈ User. ΠΠΌΠ° ΠΏΠΎΠ²Π΅ΡΠ΅, Π½ΠΎ Π·Π° ΠΏΠΎΠ»Π΅ΡΠ½ΠΎ ΡΠ°Π·Π±ΠΈΡΠ°ΡΠ΅ ΡΠ΅ ΡΠ΅ ΡΠΎΠΊΡΡΠΈΡΠ°ΠΌΠ΅ Π½Π° Π½ΠΈΠ².
PID ΠΠΌΠ΅Π½ΡΠΊΠΈΠΎΡ ΠΏΡΠΎΡΡΠΎΡ Π³ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π° ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅. ΠΠΎΠ³Π°, Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄Π΅ΠΌΠ΅ PID ΠΈΠΌΠ΅Π½ΡΠΊΠΈ ΠΏΡΠΎΡΡΠΎΡ ΠΈ ΡΠ΅ ΠΏΠΎΡΡΠ°Π²ΠΈΠΌΠ΅ ΠΏΡΠΎΡΠ΅Ρ ΡΠ°ΠΌΡ, ΡΠΎΡ ΡΡΠ°Π½ΡΠ²Π° ΡΠΎ PID 1. ΠΠ±ΠΈΡΠ½ΠΎ Π²ΠΎ ΡΠΈΡΡΠ΅ΠΌΠΈΡΠ΅ PID 1 Π΅ ΡΠΈΡΡΠ΅ΠΌΡΠΊΠΈ ΠΈΠ»ΠΈ ΠΈΠ½ΠΈΡΠΈΡΠ°Π½. Π‘ΠΏΠΎΡΠ΅Π΄ ΡΠΎΠ°, ΠΊΠΎΠ³Π° ΠΏΠΎΡΡΠ°Π²ΡΠ²Π°ΠΌΠ΅ ΠΏΡΠΎΡΠ΅Ρ Π²ΠΎ Π½ΠΎΠ² ΠΈΠΌΠ΅Π½ΡΠΊΠΈ ΠΏΡΠΎΡΡΠΎΡ, ΡΠΎΡ Π΄ΠΎΠ±ΠΈΠ²Π° ΠΈ PID 1.
ΠΠΌΡΠ΅ΠΆΡΠ²Π°ΡΠ΅ ΠΈΠΌΠ΅Π½ΡΠΊΠΈ ΠΏΡΠΎΡΡΠΎΡ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° ΡΠ° ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΠ΅/ΠΈΠ·ΠΎΠ»ΠΈΡΠ°ΡΠ΅ ΠΌΡΠ΅ΠΆΠ°ΡΠ° ΠΈ Π΄Π° ΠΏΠΎΡΡΠ°Π²ΠΈΡΠ΅ ΡΠ²ΠΎΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΡΠΈ Π²Π½Π°ΡΡΠ΅. ΠΠΎΠ½ΡΠΈΡΠ°ΡΠ΅ΡΠΎ Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ΅ Π½Π° Π΄Π°ΡΠΎΡΠ΅ΡΠ½ΠΈΠΎΡ ΡΠΈΡΡΠ΅ΠΌ. ΠΠΎΡΠΈΡΠ½ΠΈΠΊ - ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈΡΠ΅.
ΠΠΎΠ½ΡΡΠΎΠ»Π½ΠΈ Π³ΡΡΠΏΠΈ: ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°, ΠΏΡΠΎΡΠ΅ΡΠΎΡ, IOPS, ΠΌΡΠ΅ΠΆΠ° - Π²ΠΊΡΠΏΠ½ΠΎ ΠΎΠΊΠΎΠ»Ρ 12 ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ. ΠΠ½Π°ΠΊΡ ΡΠΈΠ΅ ΡΠ΅ Π½Π°ΡΠ΅ΠΊΡΠ²Π°Π°Ρ ΠΈ Cgroups (βC-Π³ΡΡΠΏΠΈβ).
ΠΠΎΠ½ΡΡΠΎΠ»Π½ΠΈΡΠ΅ Π³ΡΡΠΏΠΈ ΡΠΏΡΠ°Π²ΡΠ²Π°Π°Ρ ΡΠΎ ΡΠ΅ΡΡΡΡΠΈΡΠ΅ Π·Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ. ΠΡΠ΅ΠΊΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π½ΠΈΡΠ΅ Π³ΡΡΠΏΠΈ ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° ΠΊΠ°ΠΆΠ΅ΠΌΠ΅ Π΄Π΅ΠΊΠ° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΡ Π½Π΅ ΡΡΠ΅Π±Π° Π΄Π° ΡΡΠΎΡΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΠ΄ ΠΎΠ΄ΡΠ΅Π΄Π΅Π½Π° ΠΊΠΎΠ»ΠΈΡΠΈΠ½Π° ΡΠ΅ΡΡΡΡΠΈ.
ΠΠ° ΡΠ΅Π»ΠΎΡΠ½ΠΎ Π΄Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈΠ·Π°ΡΠΈΡΠ°ΡΠ°, ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ: ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ, Copy-on-write ΠΈ Π΄ΡΡΠ³ΠΈ.
Π‘ΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈΡΠ΅ ΡΠ΅ ΠΊΠΎΠ³Π° ΠΌΡ ΠΊΠ°ΠΆΡΠ²Π°ΠΌΠ΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡ ΡΡΠΎ ΠΌΠΎΠΆΠ΅ ΠΈ ΡΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈ. ΠΠ° Π½ΠΈΠ²ΠΎ Π½Π° ΡΠ°Π΄ΡΠΎΡΠΎ, ΠΎΠ²Π° ΡΠ΅ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ Π±ΠΈΡΠΌΠ°ΠΏΠΈ ΡΠΎ ΠΌΠ½ΠΎΠ³Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, root ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ ΠΈΠΌΠ° ΡΠ΅Π»ΠΎΡΠ½ΠΈ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈ ΡΓ¨. ΠΡΠ΅ΠΌΠ΅Π½ΡΠΊΠΈΠΎΡ ΡΠ΅ΡΠ²Π΅Ρ ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΎΡ: ΠΈΠΌΠ° ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π° ΠΡΠ΅ΠΌΠ΅Π½ΡΠΊΠ°ΡΠ° ΠΊΠ°ΠΏΡΡΠ»Π° ΠΈ ΡΠΎΠ° Π΅ ΡΠΎΠ°. ΠΠΎΡΠΈΡΡΠ΅ΡΡΠΈ Π³ΠΈ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈΡΠ΅, ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ»Π΅ΠΊΡΠΈΠ±ΠΈΠ»Π½ΠΎ Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ° Π·Π° ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ ΠΈ ΡΠΎ ΡΠΎΠ° Π΄Π° ΡΠ΅ Π·Π°ΡΡΠΈΡΠΈΡΠ΅.
Π‘ΠΈΡΡΠ΅ΠΌΠΎΡ Copy-on-write Π½ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° ΡΠ°Π±ΠΎΡΠΈΠΌΠ΅ ΡΠΎ Docker ΡΠ»ΠΈΠΊΠΈ ΠΈ Π΄Π° Π³ΠΈ ΠΊΠΎΡΠΈΡΡΠΈΠΌΠ΅ ΠΏΠΎΠ΅ΡΠΈΠΊΠ°ΡΠ½ΠΎ.
ΠΠΎΠΊΠ΅Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ°Π»Π½ΠΎ ΠΈΠΌΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΡΠΎ ΠΊΠΎΠΌΠΏΠ°ΡΠΈΠ±ΠΈΠ»Π½ΠΎΡΡΠ° ΡΠΎ Cgroups v2, ΡΠ°ΠΊΠ° ΡΡΠΎ ΠΎΠ²ΠΎΡ Π½Π°ΠΏΠΈΡ ΡΠ΅ ΡΠΎΠΊΡΡΠΈΡΠ° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ Π½Π° Cgroups v1.
ΠΠΎ, Π΄Π° ΡΠ΅ Π²ΡΠ°ΡΠΈΠΌΠ΅ Π½Π° ΠΈΡΡΠΎΡΠΈΡΠ°ΡΠ°.
ΠΠΎΠ³Π° ΡΠΈΡΡΠ΅ΠΌΠΈΡΠ΅ Π·Π° Π²ΠΈΡΡΡΠ΅Π»ΠΈΠ·Π°ΡΠΈΡΠ° ΡΠ΅ ΠΏΠΎΡΠ°Π²ΠΈΡΠ° Π½Π° Π½ΠΈΠ²ΠΎ Π½Π° ΡΠ°Π΄ΡΠΎΡΠΎ, ΡΠΈΠ΅ ΠΏΠΎΡΠ½Π°Π° Π°ΠΊΡΠΈΠ²Π½ΠΎ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ. ΠΠ°Π΄Π·Π΅ΠΌΠ½ΠΈΡΠ΅ ΡΡΠΎΡΠΎΡΠΈ Π½Π° Ρ ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡΠΎΡ ΠΈΡΡΠ΅Π·Π½Π°Π°, Π½ΠΎ ΠΎΡΡΠ°Π½Π°Π° Π½Π΅ΠΊΠΎΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ:
- Π³ΠΎΠ»Π΅ΠΌΠΈ ΡΠ»ΠΈΠΊΠΈ: ΡΡΡΠΊΠ°Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π΅Π½ ΡΠΈΡΡΠ΅ΠΌ, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΊΡΠΏ ΡΠ°Π·Π»ΠΈΡΠ΅Π½ ΡΠΎΡΡΠ²Π΅Ρ Π²ΠΎ ΠΈΡΡΠΈΠΎΡ OpenVZ, ΠΈ Π½Π° ΠΊΡΠ°ΡΠΎΡ ΡΠ»ΠΈΠΊΠ°ΡΠ° ΡΠ΅ΠΏΠ°ΠΊ ΡΠ΅ ΠΏΠΎΠΊΠ°ΠΆΡΠ²Π° Π΄ΠΎΡΡΠ° Π³ΠΎΠ»Π΅ΠΌΠ°;
- ΠΠ΅ ΠΏΠΎΡΡΠΎΠΈ Π½ΠΎΡΠΌΠ°Π»Π΅Π½ ΡΡΠ°Π½Π΄Π°ΡΠ΄ Π·Π° ΠΏΠ°ΠΊΡΠ²Π°ΡΠ΅ ΠΈ ΠΈΡΠΏΠΎΡΠ°ΠΊΠ°, ΡΠ°ΠΊΠ° ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΡ ΡΠΎ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡΠΈΡΠ΅ ΠΎΡΡΠ°Π½ΡΠ²Π°. ΠΠΎΡΡΠΎΡΠ°Ρ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ³Π° Π΄Π²Π΅ ΠΏΠ°ΡΡΠΈΡΠ° ΠΊΠΎΠ΄ ΠΊΠΎΡΠΈΡΡΠ°Ρ ΠΈΡΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, Π½ΠΎ ΡΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π²Π΅ΡΠ·ΠΈΠΈ. ΠΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ ΠΌΠ΅ΡΡ Π½ΠΈΠ².
ΠΠ° Π΄Π° ΡΠ΅ ΡΠ΅ΡΠ°Ρ ΡΠΈΡΠ΅ ΠΎΠ²ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, Π΄ΠΎΡΠ΄Π΅ ΡΠ»Π΅Π΄Π½Π°ΡΠ° Π΅ΡΠ°.
ΠΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ
ΠΠΎΠ³Π° ΠΏΡΠΈΡΡΠΈΠ³Π½Π° Π΅ΡΠ°ΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈΡΠ΅, ΡΠΈΠ»ΠΎΠ·ΠΎΡΠΈΡΠ°ΡΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ° ΡΠΎ Π½ΠΈΠ² ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ:
- ΠΠ΄Π΅Π½ ΠΏΡΠΎΡΠ΅Ρ - Π΅Π΄Π΅Π½ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ.
- ΠΠΈ Π΄ΠΎΡΡΠ°Π²ΡΠ²Π°ΠΌΠ΅ ΡΠΈΡΠ΅ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡΠΈ ΡΡΠΎ ΠΌΡ ΡΠ΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΈ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡ Π΄ΠΎ Π½Π΅Π³ΠΎΠ²ΠΈΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ. ΠΠ²Π° Π±Π°ΡΠ° ΡΠ΅ΡΠ΅ΡΠ΅ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ Π²ΠΎ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡ.
- ΠΠΎΠ»ΠΊΡ Π΅ ΠΏΠΎΠΌΠ°Π»Π° ΡΠ»ΠΈΠΊΠ°ΡΠ°, ΡΠΎΠ»ΠΊΡ ΠΏΠΎΠ΄ΠΎΠ±ΡΠΎ - ΠΈΠΌΠ° ΠΏΠΎΠΌΠ°Π»ΠΊΡ ΠΌΠΎΠΆΠ½ΠΈ ΡΠ°Π½Π»ΠΈΠ²ΠΎΡΡΠΈ, ΡΠ°Π° ΡΠ΅ ΠΈΡΡΡΠ»Π° ΠΏΠΎΠ±ΡΠ·ΠΎ ΠΈ ΡΠ°ΠΊΠ° Π½Π°ΡΠ°ΠΌΡ.
- Π‘Π»ΡΡΠ°ΠΈΡΠ΅ ΡΡΠ°Π½ΡΠ²Π°Π°Ρ Π΅ΡΠ΅ΠΌΠ΅ΡΠ½ΠΈ.
Π‘Π΅ ΡΠ΅ΡΠ°Π²Π°ΡΠ΅ ΡΡΠΎ ΠΊΠ°ΠΆΠ°Π² Π·Π° ΠΌΠΈΠ»Π΅Π½ΠΈΡΠΈΡΠ° ΠΏΡΠΎΡΠΈΠ² Π³ΠΎΠ²Π΅Π΄Π°? ΠΠΎΡΠ°Π½ΠΎ ΠΈΠ½ΡΡΠ°Π½ΡΠΈΡΠ΅ Π±Π΅Π° ΠΊΠ°ΠΊΠΎ Π΄ΠΎΠΌΠ°ΡΠ½ΠΈ ΠΆΠΈΠ²ΠΎΡΠ½ΠΈ, Π° ΡΠ΅Π³Π° ΡΡΠ°Π½Π°Π° ΠΊΠ°ΠΊΠΎ Π³ΠΎΠ²Π΅Π΄Π°. ΠΡΠ΅ΡΡ ΠΎΠ΄Π½ΠΎ, ΠΈΠΌΠ°ΡΠ΅ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ - Π΅Π΄Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°. Π‘Π΅Π³Π° ΠΈΠΌΠ° 100 ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΈ, 100 ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ. ΠΠ΅ΠΊΠΎΠΈ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ°Π°Ρ 2-3 ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ. ΠΠ° Π½Π°Ρ ΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠΌΠ°Π»ΠΊΡ Π²Π°ΠΆΠ½ΠΎ Π΄Π° Π³ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ°ΠΌΠ΅ ΡΠ΅ΠΊΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ. ΠΠ½Π° ΡΡΠΎ Π½ΠΈ Π΅ ΠΏΠΎΠ²Π°ΠΆΠ½ΠΎ Π΅ Π΄ΠΎΡΡΠ°ΠΏΠ½ΠΎΡΡΠ° Π½Π° ΡΠ°ΠΌΠ°ΡΠ° ΡΡΠ»ΡΠ³Π°: ΡΡΠΎ ΠΏΡΠ°Π²ΠΈ ΠΎΠ²ΠΎΡ ΡΠ΅Ρ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ. ΠΠ²Π° Π³ΠΎ ΠΌΠ΅Π½ΡΠ²Π° ΠΏΡΠΈΡΡΠ°ΠΏΠΎΡ ΠΊΠΎΠ½ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ΠΎΡ.
ΠΠΎ 2014-2015 Π³ΠΎΠ΄ΠΈΠ½Π°, ΠΠΎΠΊΠ΅Ρ ΠΏΡΠΎΡΠ²Π΅ΡΠ° - ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ°ΡΠ° Π·Π° ΠΊΠΎΡΠ° ΡΠ΅ Π·Π±ΠΎΡΡΠ²Π°ΠΌΠ΅ ΡΠ΅Π³Π°.
ΠΠΎΠΊΠ΅Ρ ΡΠ° ΡΠΌΠ΅Π½ΠΈ ΡΠΈΠ»ΠΎΠ·ΠΎΡΠΈΡΠ°ΡΠ° ΠΈ ΡΡΠ°Π½Π΄Π°ΡΠ΄ΠΈΠ·ΠΈΡΠ°Π½ΠΎ ΠΏΠ°ΠΊΡΠ²Π°ΡΠ΅ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ°. ΠΠΎΡΠΈΡΡΠ΅ΡΡΠΈ Π³ΠΎ Docker, ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° ΠΏΠ°ΠΊΡΠ²Π°ΠΌΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°, Π΄Π° ΡΠ° ΠΈΡΠΏΡΠ°ΡΠΈΠΌΠ΅ Π²ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅, Π΄Π° ΡΠ° ΠΏΡΠ΅Π·Π΅ΠΌΠ΅ΠΌΠ΅ ΠΎΠ΄ ΡΠ°ΠΌΡ ΠΈ Π΄Π° ΡΠ° ΡΠ°ΡΠΏΠΎΡΠ΅Π΄ΠΈΠΌΠ΅.
Π‘ΡΠ°Π²ΠΈΠ²ΠΌΠ΅ ΡΓ¨ ΡΡΠΎ Π½ΠΈ ΡΡΠ΅Π±Π° Π²ΠΎ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΡ Docker, ΡΠ°ΠΊΠ° ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΡ ΡΠΎ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡΠ° Π΅ ΡΠ΅ΡΠ΅Π½. Docker Π³Π°ΡΠ°Π½ΡΠΈΡΠ° ΡΠ΅ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΠΎΡΡ. ΠΠΈΡΠ»Π°ΠΌ Π΄Π΅ΠΊΠ° ΠΌΠ½ΠΎΠ³Ρ Π»ΡΡΠ΅ ΡΠ΅ ΡΡΠ΅ΡΠ½Π°Π° ΡΠΎ Π½Π΅ΡΠ΅ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΠΎΡΡ: ΡΓ¨ ΡΠ°Π±ΠΎΡΠΈ Π·Π° Π²Π°Ρ, Π³ΠΎ ΡΡΡΠΊΠ°ΡΠ΅ Π΄ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΈ ΡΠ°ΠΌΡ ΠΏΡΠ΅ΡΡΠ°Π½ΡΠ²Π° Π΄Π° ΡΠ°Π±ΠΎΡΠΈ. Π‘ΠΎ Docker ΠΎΠ²ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΈΡΡΠ΅Π·Π½ΡΠ²Π°. ΠΠΊΠΎ Π²Π°ΡΠΈΠΎΡ Docker ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ ΡΡΠ°ΡΡΡΠ²Π° ΠΈ Π³ΠΎ ΠΏΡΠ°Π²ΠΈ ΠΎΠ½Π° ΡΡΠΎ ΡΡΠ΅Π±Π° Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈ, ΡΠΎΠ³Π°Ρ ΡΠΎ Π³ΠΎΠ»Π΅ΠΌ ΡΡΠ΅ΠΏΠ΅Π½ Π½Π° Π²Π΅ΡΠΎΡΠ°ΡΠ½ΠΎΡΡ ΡΠ΅ Π·Π°ΠΏΠΎΡΠ½Π΅ ΡΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΈ ΡΠ΅ Π³ΠΎ ΡΡΠΎΡΠΈ ΠΈΡΡΠΎΡΠΎ ΡΠ°ΠΌΡ.
ΠΠΈΠ³ΡΠ΅ΡΠΈΡΠ° Π·Π° Π½Π°Π΄Π·Π΅ΠΌΠ½ΠΈ ΡΡΠΎΡΠΎΡΠΈ
Π‘Π΅ΠΊΠΎΠ³Π°Ρ ΠΈΠΌΠ° ΡΠΏΠΎΡΠΎΠ²ΠΈ Π·Π° ΠΎΠΏΡΡΠΈΡΠ΅ ΡΡΠΎΡΠΎΡΠΈ. ΠΠ΅ΠΊΠΎΠΈ Π»ΡΡΠ΅ Π²Π΅ΡΡΠ²Π°Π°Ρ Π΄Π΅ΠΊΠ° Docker Π½Π΅ Π½ΠΎΡΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΠΎΠΏΡΠΎΠ²Π°ΡΡΠ²Π°ΡΠ΅, Π±ΠΈΠ΄Π΅ΡΡΠΈ Π³ΠΎ ΠΊΠΎΡΠΈΡΡΠΈ ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ Π½Π° Linux ΠΈ ΡΠΈΡΠ΅ Π½Π΅Π³ΠΎΠ²ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ Π½Π΅ΠΎΠΏΡ ΠΎΠ΄Π½ΠΈ Π·Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈΠ·Π°ΡΠΈΡΠ°. ΠΠ°ΠΊΠΎ, βΠ°ΠΊΠΎ ΠΊΠ°ΠΆΠ΅ΡΠ΅ Π΄Π΅ΠΊΠ° Docker Π΅ Π½Π°Π΄ Π³Π»Π°Π²Π°, ΡΠΎΠ³Π°Ρ ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ Π½Π° Linux Π΅ Π½Π°Π΄ Π³Π»Π°Π²Π°β.
ΠΠ΄ Π΄ΡΡΠ³Π° ΡΡΡΠ°Π½Π°, Π°ΠΊΠΎ Π½Π°Π²Π»Π΅Π·Π΅ΡΠ΅ ΠΏΠΎΠ΄Π»Π°Π±ΠΎΠΊΠΎ, Π½Π°Π²ΠΈΡΡΠΈΠ½Π° ΠΈΠΌΠ° Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΡΠ°Π±ΠΎΡΠΈ Π²ΠΎ ΠΠΎΠΊΠ΅Ρ Π·Π° ΠΊΠΎΠΈ, ΡΠΎ ΠΈΡΡΠ΅Π³Π½ΡΠ²Π°ΡΠ΅, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠ°ΠΆΠ΅ Π΄Π΅ΠΊΠ° ΡΠ΅ Π½Π°Π΄ Π³Π»Π°Π²Π°.
ΠΡΠ²ΠΈΠΎΡ Π΅ ΠΈΠΌΠ΅Π½ΡΠΊΠΈΠΎΡ ΠΏΡΠΎΡΡΠΎΡ Π½Π° PID. ΠΠΎΠ³Π° ΠΏΠΎΡΡΠ°Π²ΡΠ²Π°ΠΌΠ΅ ΠΏΡΠΎΡΠ΅Ρ Π²ΠΎ ΠΈΠΌΠ΅Π½ΡΠΊΠΈ ΠΏΡΠΎΡΡΠΎΡ, ΠΌΡ ΡΠ΅ Π΄ΠΎΠ΄Π΅Π»ΡΠ²Π° PID 1. ΠΠΎ ΠΈΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅, ΠΎΠ²ΠΎΡ ΠΏΡΠΎΡΠ΅Ρ ΠΈΠΌΠ° ΡΡΡΠ΅ Π΅Π΄Π΅Π½ PID, ΠΊΠΎΡ ΡΠ΅ Π½Π°ΠΎΡΠ° Π½Π° ΠΈΠΌΠ΅Π½ΡΠΊΠΈΠΎΡ ΠΏΡΠΎΡΡΠΎΡ Π½Π° Π΄ΠΎΠΌΠ°ΡΠΈΠ½ΠΎΡ, Π½Π°Π΄Π²ΠΎΡ ΠΎΠ΄ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΡ. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, Π³ΠΎ Π»Π°Π½ΡΠΈΡΠ°Π²ΠΌΠ΅ Nginx Π²ΠΎ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ, ΡΠΎΡ ΡΡΠ°Π½Π° PID 1 (Π³Π»Π°Π²Π΅Π½ ΠΏΡΠΎΡΠ΅Ρ). Π Π½Π° Π΄ΠΎΠΌΠ°ΡΠΈΠ½ΠΎΡ ΠΈΠΌΠ° PID 12623. Π ΡΠ΅ΡΠΊΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΊΠ°ΠΆΠ΅ ΠΊΠΎΠ»ΠΊΠ°Π²Π° Π΅ ΡΠ΅Π½Π°ΡΠ°.
ΠΡΠΎΡΠ°ΡΠ° ΡΠ°Π±ΠΎΡΠ° Π΅ Cgroups. ΠΠ° Π³ΠΈ Π·Π΅ΠΌΠ΅ΠΌΠ΅ Cgroups ΠΏΠΎ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°, ΠΎΠ΄Π½ΠΎΡΠ½ΠΎ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠ° Π΄Π° ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°ΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ. ΠΠΎΠ³Π° Π΅ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ΠΎ, ΡΠ΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π°Ρ Π±ΡΠΎΡΠ°ΡΠΈΡΠ΅ ΠΈ ΡΠΌΠ΅ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΡΠΎ Π·Π° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°: ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ ΡΡΠ΅Π±Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ ΠΊΠΎΠ»ΠΊΡ ΡΡΡΠ°Π½ΠΈΡΠΈ ΡΠ΅ Π΄ΠΎΠ΄Π΅Π»Π΅Π½ΠΈ ΠΈ ΠΊΠΎΠ»ΠΊΡ ΡΠ΅ ΡΡΡΠ΅ ΡΠ΅ ΡΠ»ΠΎΠ±ΠΎΠ΄Π½ΠΈ Π·Π° ΠΎΠ²ΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ. ΠΠ²Π° Π΅ ΠΌΠΎΠΆΠ΅Π±ΠΈ Π½Π°Π΄ Π³Π»Π°Π²Π°, Π½ΠΎ Π½Π΅ ΡΡΠΌ Π²ΠΈΠ΄Π΅Π» Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ ΠΏΡΠ΅ΡΠΈΠ·Π½ΠΈ ΡΡΡΠ΄ΠΈΠΈ Π·Π° ΡΠΎΠ° ΠΊΠ°ΠΊΠΎ ΡΠΎΠ° Π²Π»ΠΈΡΠ°Π΅ Π½Π° ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈΡΠ΅. Π ΡΠ°Ρ ΡΠ°ΠΌΠΈΠΎΡ Π½Π΅ Π·Π°Π±Π΅Π»Π΅ΠΆΠ°Π² Π΄Π΅ΠΊΠ° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° ΡΡΠΎ ΡΠ°Π±ΠΎΡΠΈ Π²ΠΎ Docker ΠΎΠ΄Π΅Π΄Π½Π°Ρ Π΄ΠΎΠΆΠΈΠ²Π΅Π° ΠΎΡΡΡΠ° Π·Π°Π³ΡΠ±Π° Π²ΠΎ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈΡΠ΅.
Π ΡΡΡΠ΅ Π΅Π΄Π½Π° Π·Π°Π±Π΅Π»Π΅ΡΠΊΠ° Π·Π° ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈΡΠ΅. ΠΠ΅ΠΊΠΎΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π½Π° ΡΠ°Π΄ΡΠΎΡΠΎ ΡΠ΅ ΠΏΡΠ΅Π½Π΅ΡΡΠ²Π°Π°Ρ ΠΎΠ΄ Π΄ΠΎΠΌΠ°ΡΠΈΠ½ΠΎΡ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΡ. ΠΡΠΎΠ±Π΅Π½ΠΎ, Π½Π΅ΠΊΠΎΠΈ ΠΌΡΠ΅ΠΆΠ½ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ. ΠΠ°ΡΠΎΠ°, Π°ΠΊΠΎ ΡΠ°ΠΊΠ°ΡΠ΅ Π΄Π° ΠΈΠ·Π²ΡΡΠΈΡΠ΅ Π½Π΅ΡΡΠΎ ΡΠΎ Π²ΠΈΡΠΎΠΊΠΈ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈ Π²ΠΎ Docker, Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅ΡΡΠΎ ΡΡΠΎ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ΅ ΡΠ° ΠΊΠΎΡΠΈΡΡΠΈ ΠΌΡΠ΅ΠΆΠ°ΡΠ°, ΡΠΎΠ³Π°Ρ Π±Π°ΡΠ΅ΠΌ ΡΡΠ΅Π±Π° Π΄Π° Π³ΠΈ ΠΏΡΠΈΠ»Π°Π³ΠΎΠ΄ΠΈΡΠ΅ ΠΎΠ²ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ. ΠΠ΅ΠΊΠΎΠΈ nf_conntrack, Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ.
ΠΠ° ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΎΡ Docker
ΠΠΎΠΊΠ΅Ρ ΡΠ΅ ΡΠΎΡΡΠΎΠΈ ΠΎΠ΄ Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ:
- Docker Daemon Π΅ ΠΈΡΡΠΈΠΎΡ Container Engine; Π»Π°Π½ΡΠΈΡΠ° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ.
- Docker CII Π΅ Π°Π»Π°ΡΠΊΠ° Π·Π° ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΡΠΎ Docker.
- Dockerfile - ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π·Π° ΡΠΎΠ° ΠΊΠ°ΠΊΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·Π³ΡΠ°Π΄ΠΈ ΡΠ»ΠΈΠΊΠ°.
- Π‘Π»ΠΈΠΊΠ° β ΡΠ»ΠΈΠΊΠ° ΠΎΠ΄ ΠΊΠΎΡΠ° ΡΠ΅ Π²Π°Π»Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΡ.
- ΠΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ.
- ΠΠΎΠΊΠ΅ΡΡΠΊΠΈΠΎΡ ΡΠ΅Π³ΠΈΡΡΠ°Ρ Π΅ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ Π·Π° ΡΠ»ΠΈΠΊΠΈ.
Π¨Π΅ΠΌΠ°ΡΡΠΊΠΈ ΠΈΠ·Π³Π»Π΅Π΄Π° Π²Π°ΠΊΠ°:
ΠΠΎΠΊΠ΅Ρ Π΄Π΅ΠΌΠΎΠ½ΠΎΡ ΡΠ°Π±ΠΎΡΠΈ Π½Π° Docker_host ΠΈ Π»Π°Π½ΡΠΈΡΠ° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ. ΠΠΎΡΡΠΎΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΊΠΎΡ ΠΈΡΠΏΡΠ°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ: ΠΈΠ·Π³ΡΠ°Π΄ΠΈ ΡΠ° ΡΠ»ΠΈΠΊΠ°ΡΠ°, ΠΏΡΠ΅Π·Π΅ΠΌΠ΅ΡΠ΅ ΡΠ° ΡΠ»ΠΈΠΊΠ°ΡΠ°, ΡΡΠ°ΡΡΡΠ²Π°ΡΡΠ΅ Π³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΡ. Docker daemon ΠΎΠ΄ΠΈ Π²ΠΎ ΡΠ΅Π³ΠΈΡΡΠ°ΡΠΎΡ ΠΈ Π³ΠΈ ΠΈΠ·Π²ΡΡΡΠ²Π°. ΠΠ»ΠΈΠ΅Π½ΡΠΎΡ Docker ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠΈΡΡΠ°ΠΏΠΈ ΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΎ (Π΄ΠΎ Unix ΠΏΡΠΈΠΊΠ»ΡΡΠΎΠΊ) ΠΈ ΠΏΡΠ΅ΠΊΡ TCP ΠΎΠ΄ ΠΎΠ΄Π΄Π°Π»Π΅ΡΠ΅Π½ Π΄ΠΎΠΌΠ°ΡΠΈΠ½.
ΠΡΠ΄Π΅ Π΄Π° ΠΏΠΎΠΌΠΈΠ½Π΅ΠΌΠ΅ Π½ΠΈΠ· ΡΠ΅ΠΊΠΎΡΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°.
ΠΠΎΠΊΠ΅Ρ Π΄Π΅ΠΌΠΎΠ½ - ΠΎΠ²Π° Π΅ Π΄Π΅Π» ΠΎΠ΄ ΡΠ΅ΡΠ²Π΅ΡΠΎΡ, ΡΠ°Π±ΠΎΡΠΈ Π½Π° ΠΌΠ°ΡΠΈΠ½Π°ΡΠ° Π΄ΠΎΠΌΠ°ΡΠΈΠ½: ΠΏΡΠ΅Π·Π΅ΠΌΠ° ΡΠ»ΠΈΠΊΠΈ ΠΈ Π»Π°Π½ΡΠΈΡΠ° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ ΠΎΠ΄ Π½ΠΈΠ², ΡΠΎΠ·Π΄Π°Π²Π° ΠΌΡΠ΅ΠΆΠ° ΠΏΠΎΠΌΠ΅ΡΡ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈΡΠ΅, ΡΠΎΠ±ΠΈΡΠ° Π΄Π½Π΅Π²Π½ΠΈΡΠΈ. ΠΠΎΠ³Π° Π²Π΅Π»ΠΈΠΌΠ΅ βΡΠΎΠ·Π΄Π°Π΄ΠΈ ΡΠ»ΠΈΠΊΠ°β, Π΄Π΅ΠΌΠΎΠ½ΠΎΡ ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° Π³ΠΎ ΠΏΡΠ°Π²ΠΈ ΡΠΎΠ°.
ΠΠΎΠΊΠ΅Ρ CLI β ΠΠΎΠΊΠ΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈ Π΄Π΅Π», Π°Π»Π°ΡΠΊΠ° Π·Π° ΠΊΠΎΠ½Π·ΠΎΠ»Π° Π·Π° ΡΠ°Π±ΠΎΡΠ° ΡΠΎ Π΄Π΅ΠΌΠΎΠ½ΠΎΡ. ΠΠΎΠ²ΡΠΎΡΡΠ²Π°ΠΌ, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Π½Π΅ ΡΠ°ΠΌΠΎ Π»ΠΎΠΊΠ°Π»Π½ΠΎ, ΡΡΠΊΡ ΠΈ ΠΏΡΠ΅ΠΊΡ ΠΌΡΠ΅ΠΆΠ°ΡΠ°.
ΠΡΠ½ΠΎΠ²Π½ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ:
docker ps - ΠΏΡΠΈΠΊΠ°ΠΆΡΠ²Π°Ρ Π³ΠΈ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈΡΠ΅ ΡΡΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ°Π»Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°Ρ Π½Π° Π΄ΠΎΠΌΠ°ΡΠΈΠ½ΠΎΡ Docker.
Π΄ΠΎΠΊΠ΅Ρ ΡΠ»ΠΈΠΊΠΈ - ΠΏΡΠΈΠΊΠ°ΠΆΡΠ²Π°Ρ ΡΠ»ΠΈΠΊΠΈ ΠΏΡΠ΅Π·Π΅ΠΌΠ΅Π½ΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΎ.
Π΄ΠΎΠΊΠ΅Ρ ΠΏΡΠ΅Π±Π°ΡΡΠ²Π°ΡΠ΅ <> - ΠΏΠΎΠ±Π°ΡΠ°ΡΡΠ΅ ΡΠ»ΠΈΠΊΠ° Π²ΠΎ ΡΠ΅Π³ΠΈΡΡΠ°ΡΠΎΡ.
docker pull <> - ΠΏΡΠ΅Π·Π΅ΠΌΠ΅ΡΠ΅ ΡΠ»ΠΈΠΊΠ° ΠΎΠ΄ ΡΠ΅Π³ΠΈΡΡΠ°ΡΠΎΡ Π½Π° ΠΌΠ°ΡΠΈΠ½Π°ΡΠ°.
Π΄ΠΎΠΊΠ΅Ρ ΠΈΠ·Π³ΡΠ°Π΄ΠΈ < > - ΡΠΎΠ±Π΅ΡΠ΅ΡΠ΅ ΡΠ° ΡΠ»ΠΈΠΊΠ°ΡΠ°.
docker run <> - ΡΡΠ°ΡΡΡΠ²Π°ΡΡΠ΅ Π³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΡ.
docker rm <> - ΠΈΠ·Π²Π°Π΄Π΅ΡΠ΅ Π³ΠΎ ΡΠ°Π΄ΠΎΡ.
Π΄ΠΎΠΊΠ΅Ρ Π»ΠΎΠ³ΠΎΠ²ΠΈ <> - Π΄Π½Π΅Π²Π½ΠΈΡΠΈ Π·Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ
docker start/stop/restart <> - ΡΠ°Π±ΠΎΡΠ° ΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΡ
ΠΠΊΠΎ Π³ΠΈ ΡΠΎΠ²Π»Π°Π΄Π°ΡΠ΅ ΠΎΠ²ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΈ ΡΡΠ΅ ΡΠΈΠ³ΡΡΠ½ΠΈ Π²ΠΎ Π½ΠΈΠ²Π½ΠΎΡΠΎ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅, ΡΠΌΠ΅ΡΠ°ΡΡΠ΅ Π΄Π΅ΠΊΠ° ΡΡΠ΅ 70% ΡΠΌΠ΅ΡΠ΅Π½ Π²ΠΎ Docker Π½Π° Π½ΠΈΠ²ΠΎ Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊ.
dockerfile - ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π·Π° ΠΊΡΠ΅ΠΈΡΠ°ΡΠ΅ ΡΠ»ΠΈΠΊΠ°. Π Π΅ΡΠΈΡΠΈ ΡΠ΅ΠΊΠΎΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π΅ Π½ΠΎΠ² ΡΠ»ΠΎΡ. ΠΡΠ΄Π΅ Π΄Π° ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌΠ΅ Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ.
ΠΠ°ΠΊΠ° ΠΈΠ·Π³Π»Π΅Π΄Π° Dockerfile: ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π»Π΅Π²ΠΎ, Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈ Π΄Π΅ΡΠ½ΠΎ. Π‘Π΅ΠΊΠΎΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΡΠΎ Π΅ ΠΎΠ²Π΄Π΅ (ΠΈ Π³Π΅Π½Π΅ΡΠ°Π»Π½ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½Π° Π²ΠΎ Dockerfile) ΡΠΎΠ·Π΄Π°Π²Π° Π½ΠΎΠ² ΡΠ»ΠΎΡ Π²ΠΎ Image.
ΠΡΡΠΈ ΠΈ Π³Π»Π΅Π΄Π°ΡΡΠΈ Π½Π° Π»Π΅Π²Π°ΡΠ° ΡΡΡΠ°Π½Π°, Π³ΡΡΠ±ΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΡΡΠΎ ΡΠ΅ ΡΠ»ΡΡΡΠ²Π°. ΠΠΈΠ΅ Π²Π΅Π»ΠΈΠΌΠ΅: βΡΠΎΠ·Π΄Π°Π΄Π΅ΡΠ΅ ΠΏΠ°ΠΏΠΊΠ° Π·Π° Π½Π°Ρβ - ΠΎΠ²Π° Π΅ Π΅Π΄Π΅Π½ ΡΠ»ΠΎΡ. βΠΠ°ΠΏΡΠ°Π²ΠΈ ΡΠ° ΠΏΠ°ΠΏΠΊΠ°ΡΠ° Π΄Π° ΡΠ°Π±ΠΎΡΠΈβ Π΅ ΡΡΡΠ΅ Π΅Π΄Π΅Π½ ΡΠ»ΠΎΡ, ΠΈ ΡΠ°ΠΊΠ° Π½Π°ΡΠ°ΠΌΡ. Π‘Π»ΠΎΡΠ½Π°ΡΠ° ΡΠΎΡΡΠ° Π³ΠΎ ΠΎΠ»Π΅ΡΠ½ΡΠ²Π° ΠΆΠΈΠ²ΠΎΡΠΎΡ. ΠΠΊΠΎ ΡΠΎΠ·Π΄Π°Π΄Π°ΠΌ Π΄ΡΡΠ³ Dockerfile ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π°ΠΌ Π½Π΅ΡΡΠΎ Π²ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π°ΡΠ° Π»ΠΈΠ½ΠΈΡΠ° - ΡΡΠ°ΡΡΡΠ²Π°ΠΌ Π½Π΅ΡΡΠΎ Π΄ΡΡΠ³ΠΎ ΠΎΡΠ²Π΅Π½ βpythonβ βmain.pyβ, ΠΈΠ»ΠΈ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΌ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡ ΠΎΠ΄ Π΄ΡΡΠ³Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° - ΡΠΎΠ³Π°Ρ ΠΏΡΠ΅ΡΡ ΠΎΠ΄Π½ΠΈΡΠ΅ ΡΠ»ΠΎΠ΅Π²ΠΈ ΡΠ΅ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΊΠ°ΠΊΠΎ ΠΊΠ΅Ρ.
Π‘Π»ΠΈΠΊΠ°ΡΠ° - ΠΎΠ²Π° Π΅ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΡΠΊΠΎ ΠΏΠ°ΠΊΡΠ²Π°ΡΠ΅; ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈΡΠ΅ ΡΠ΅ Π»Π°Π½ΡΠΈΡΠ°Π°Ρ ΠΎΠ΄ ΡΠ»ΠΈΠΊΠ°ΡΠ°. ΠΠΊΠΎ Π³ΠΎ ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌΠ΅ Docker ΠΎΠ΄ Π³Π»Π΅Π΄Π½Π° ΡΠΎΡΠΊΠ° Π½Π° ΠΌΠ΅Π½Π°ΡΠ΅Ρ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ (ΠΊΠ°ΠΊΠΎ Π΄Π° ΡΠ°Π±ΠΎΡΠΈΠΌΠ΅ ΡΠΎ deb ΠΈΠ»ΠΈ rpm ΠΏΠ°ΠΊΠ΅ΡΠΈ), ΡΠΎΠ³Π°Ρ ΡΠ»ΠΈΠΊΠ°ΡΠ° Π²ΠΎ ΡΡΡΡΠΈΠ½Π° Π΅ ΠΏΠ°ΠΊΠ΅Ρ ΡΠΎ Π²ΡΡΠ΅ΠΆΠΈ Π²ΠΎ ΠΌΠΈΠ½ΡΡΠ°. ΠΡΠ΅ΠΊΡ yum install ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° ΡΠ° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΌΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ°, Π΄Π° ΡΠ° ΠΈΠ·Π±ΡΠΈΡΠ΅ΠΌΠ΅, Π΄Π° ΡΠ° Π½Π°ΡΠ΄Π΅ΠΌΠ΅ Π²ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ΡΠΎ ΠΈ Π΄Π° ΡΠ° ΠΏΡΠ΅Π·Π΅ΠΌΠ΅ΠΌΠ΅. ΠΠ²Π΄Π΅ Π΅ ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ½ΠΎ ΠΈΡΡΠΎ: ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈΡΠ΅ ΡΠ΅ Π»Π°Π½ΡΠΈΡΠ°Π°Ρ ΠΎΠ΄ ΡΠ»ΠΈΠΊΠ°ΡΠ°, ΡΠ΅ ΡΡΠ²Π°Π°Ρ Π²ΠΎ ΡΠ΅Π³ΠΈΡΡΠ°ΡΠΎΡ Docker (ΡΠ»ΠΈΡΠ½ΠΎ Π½Π° yum, Π²ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅) ΠΈ ΡΠ΅ΠΊΠΎΡΠ° ΡΠ»ΠΈΠΊΠ° ΠΈΠΌΠ° Ρ Π°Ρ SHA-256, ΠΈΠΌΠ΅ ΠΈ ΠΎΠ·Π½Π°ΠΊΠ°.
Π‘Π»ΠΈΠΊΠ°ΡΠ° Π΅ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½Π° ΡΠΏΠΎΡΠ΅Π΄ ΡΠΏΠ°ΡΡΡΠ²Π°ΡΠ° ΠΎΠ΄ Dockerfile. Π‘Π΅ΠΊΠΎΡΠ° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠ° ΠΎΠ΄ Dockerfile ΡΠΎΠ·Π΄Π°Π²Π° Π½ΠΎΠ² ΡΠ»ΠΎΡ. Π‘Π»ΠΎΠ΅Π²ΠΈΡΠ΅ ΠΌΠΎΠΆΠ΅ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ.
ΠΠΎΠΊΠ΅Ρ ΡΠ΅Π³ΠΈΡΡΠ°Ρ Π΅ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ Π·Π° ΡΠ»ΠΈΠΊΠΈ Π½Π° Docker. Π‘Π»ΠΈΡΠ½ΠΎ Π½Π° ΠΠ‘, Docker ΠΈΠΌΠ° ΡΠ°Π²Π΅Π½ ΡΡΠ°Π½Π΄Π°ΡΠ΄Π΅Π½ ΡΠ΅Π³ΠΈΡΡΠ°Ρ - dockerhub. ΠΠΎ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·Π³ΡΠ°Π΄ΠΈΡΠ΅ ΡΠΎΠΏΡΡΠ²Π΅Π½ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅, ΡΠ²ΠΎΡ Docker ΡΠ΅Π³ΠΈΡΡΠ°Ρ.
ΠΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ - ΡΡΠΎ ΡΠ΅ Π»Π°Π½ΡΠΈΡΠ° ΠΎΠ΄ ΡΠ»ΠΈΠΊΠ°ΡΠ°. ΠΠ·Π³ΡΠ°Π΄ΠΈΠ²ΠΌΠ΅ ΡΠ»ΠΈΠΊΠ° ΡΠΏΠΎΡΠ΅Π΄ ΡΠΏΠ°ΡΡΡΠ²Π°ΡΠ° ΠΎΠ΄ Dockerfile, Π° ΠΏΠΎΡΠΎΠ° ΡΠ° ΡΡΠ°ΡΡΡΠ²Π°ΠΌΠ΅ ΠΎΠ΄ ΠΎΠ²Π°Π° ΡΠ»ΠΈΠΊΠ°. ΠΠ²ΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ Π΅ ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ ΠΎΠ΄ Π΄ΡΡΠ³ΠΈ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ ΠΈ ΠΌΠΎΡΠ° Π΄Π° ΡΠΎΠ΄ΡΠΆΠΈ ΡΠ΅ ΡΡΠΎ Π΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎ Π·Π° Π΄Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ°. ΠΠΎ ΠΎΠ²ΠΎΡ ΡΠ»ΡΡΠ°Ρ, Π΅Π΄Π΅Π½ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ - Π΅Π΄Π΅Π½ ΠΏΡΠΎΡΠ΅Ρ. Π‘Π΅ ΡΠ»ΡΡΡΠ²Π° Π΄Π° ΡΡΠ΅Π±Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ Π΄Π²Π° ΠΏΡΠΎΡΠ΅ΡΠΈ, Π½ΠΎ ΡΠΎΠ° Π΅ Π½Π΅ΡΡΠΎ ΡΠΏΡΠΎΡΠΈΠ²Π½ΠΎ Π½Π° ΠΈΠ΄Π΅ΠΎΠ»ΠΎΠ³ΠΈΡΠ°ΡΠ° Π½Π° ΠΠΎΠΊΠ΅Ρ.
ΠΠ°ΡΠ°ΡΠ΅ΡΠΎ βΠ΅Π΄Π΅Π½ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ, Π΅Π΄Π΅Π½ ΠΏΡΠΎΡΠ΅Ρβ Π΅ ΠΏΠΎΠ²ΡΠ·Π°Π½ΠΎ ΡΠΎ ΠΠΌΠ΅Π½ΡΠΊΠΈΠΎΡ ΠΏΡΠΎΡΡΠΎΡ Π½Π° PID. ΠΠΎΠ³Π° ΡΠ΅ Π·Π°ΠΏΠΎΡΠ½Π΅ ΠΏΡΠΎΡΠ΅Ρ ΡΠΎ PID 1 Π²ΠΎ ΠΠΌΠ΅Π½ΡΠΊΠΈΠΎΡ ΠΏΡΠΎΡΡΠΎΡ, Π°ΠΊΠΎ ΠΎΠ΄Π΅Π΄Π½Π°Ρ ΡΠΌΡΠ΅, ΡΠΎΠ³Π°Ρ ΡΠΌΠΈΡΠ° ΠΈ ΡΠ΅Π»ΠΈΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ. ΠΠΊΠΎ ΡΠ°ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Ρ Π΄Π²Π° ΠΏΡΠΎΡΠ΅ΡΠ°: Π΅Π΄Π½ΠΈΠΎΡ Π΅ ΠΆΠΈΠ², Π° Π΄ΡΡΠ³ΠΈΠΎΡ ΠΌΡΡΠΎΠ², ΡΠΎΠ³Π°Ρ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΡ ΡΠ΅ΠΏΠ°ΠΊ ΡΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈ Π΄Π° ΠΆΠΈΠ²Π΅Π΅. ΠΠΎ, ΠΎΠ²Π° Π΅ ΠΏΡΠ°ΡΠ°ΡΠ΅ Π½Π° Π½Π°ΡΠ΄ΠΎΠ±ΡΠΈΡΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ, ΡΠ΅ Π·Π±ΠΎΡΡΠ²Π°ΠΌΠ΅ Π·Π° Π½ΠΈΠ² Π²ΠΎ Π΄ΡΡΠ³ΠΈ ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈ.
ΠΠ° ΠΏΠΎΠ΄Π΅ΡΠ°Π»Π½ΠΎ Π΄Π° Π³ΠΈ ΠΏΡΠΎΡΡΠΈΡΠ΅ ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈΡΠ΅ ΠΈ ΡΠ΅Π»ΠΎΡΠ½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° Π½Π° ΠΊΡΡΡΠΎΡ, Π²Π΅ ΠΌΠΎΠ»ΠΈΠΌΠ΅ ΡΠ»Π΅Π΄Π΅ΡΠ΅ ΡΠ° Π²ΡΡΠΊΠ°ΡΠ°: β
ΠΠ²ΡΠΎΡ: ΠΠ°ΡΡΠ΅Π» ΠΠ±ΡΠ°Π΅Π², ΡΠ΅ΡΡΠΈΡΠΈΡΠΈΡΠ°Π½ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ Π½Π° ΠΡΠ±Π΅ΡΠ½Π΅ΡΠ΅Ρ, ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ-ΠΏΡΠ°ΠΊΡΠΈΠΊ Π²ΠΎ Π‘Π°ΡΡΠ±ΡΠΈΡ, Π³ΠΎΠ²ΠΎΡΠ½ΠΈΠΊ ΠΈ ΡΠ°Π·Π²ΠΈΠ²Π°Ρ Π½Π° ΠΊΡΡΡΠ΅Π²ΠΈ Π·Π° Slurm.
ΠΠ·Π²ΠΎΡ: www.habr.com