ΠΠ°ΠΏΠΎΡΠ½Π° Π½Π° 10 Π°Π²Π³ΡΡΡ Π² Slurm
Π ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ ΡΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° ΠΈΡΡΠΎΡΠΈΡΡΠ° Π½Π° Docker ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΠΌΡ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ: Image, Cli, Dockerfile. ΠΠ΅ΠΊΡΠΈΡΡΠ° Π΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π·Π° Π½Π°ΡΠΈΠ½Π°Π΅ΡΠΈ, ΡΠ°ΠΊΠ° ΡΠ΅ Π΅ ΠΌΠ°Π»ΠΊΠΎ Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π΄Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π° ΠΈΠ½ΡΠ΅ΡΠ΅Ρ Π·Π° ΠΎΠΏΠΈΡΠ½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ. ΠΡΠΌΠ° Π΄Π° ΠΈΠΌΠ° ΠΊΡΡΠ², Π°ΠΏΠ΅Π½Π΄ΠΈΠΊΡ ΠΈΠ»ΠΈ Π΄ΡΠ»Π±ΠΎΠΊΠΎ ΠΏΠΎΡΠ°ΠΏΡΠ½Π΅. Π‘Π°ΠΌΠΈΡΠ΅ ΠΎΡΠ½ΠΎΠ²ΠΈ.
ΠΠ°ΠΊΠ²ΠΎ Π΅ Docker
ΠΠ΅ΠΊΠ° Π΄Π° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Docker ΠΎΡ Wikipedia.
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, ΠΌΡΠ΅ΠΆΠ°, ΠΌΠΎΠ½ΡΠΈΡΠ°Π½Π΅ ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π». ΠΠΌΠ° ΠΎΡΠ΅, Π½ΠΎ Π·Π° ΠΏΠΎ-Π»Π΅ΡΠ½ΠΎ ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΡΠ΅ ΡΠ΅ ΡΠΏΡΠ΅ΠΌ Π½Π° ΡΡΡ .
PID Namespace ΠΎΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π° ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅. ΠΠΎΠ³Π°ΡΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ PID Namespace ΠΈ ΠΏΠΎΡΡΠ°Π²ΠΈΠΌ ΠΏΡΠΎΡΠ΅Ρ ΡΠ°ΠΌ, ΡΠΎΠΉ ΡΡΠ°Π²Π° Ρ PID 1. ΠΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π² ΡΠΈΡΡΠ΅ΠΌΠΈΡΠ΅ PID 1 Π΅ systemd ΠΈΠ»ΠΈ init. Π‘ΡΠΎΡΠ²Π΅ΡΠ½ΠΎ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΏΠΎΡΡΠ°Π²ΠΈΠΌ ΠΏΡΠΎΡΠ΅Ρ Π² Π½ΠΎΠ²ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΎΡ ΠΈΠΌΠ΅Π½Π°, ΡΠΎΠΉ ΡΡΡΠΎ ΠΏΠΎΠ»ΡΡΠ°Π²Π° PID 1.
ΠΡΠ΅ΠΆΠΎΠ²ΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π½Π° ΠΈΠΌΠ΅Π½Π°ΡΠ° Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΠ΅/ΠΈΠ·ΠΎΠ»ΠΈΡΠ°ΡΠ΅ ΠΌΡΠ΅ΠΆΠ°ΡΠ° ΠΈ Π΄Π° ΠΏΠΎΡΡΠ°Π²ΠΈΡΠ΅ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ Π²ΡΡΡΠ΅. ΠΠΎΠ½ΡΠΈΡΠ°Π½Π΅ΡΠΎ Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°. ΠΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»βΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π·Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ.
ΠΠΎΠ½ΡΡΠΎΠ»Π½ΠΈ Π³ΡΡΠΏΠΈ: ΠΏΠ°ΠΌΠ΅Ρ, ΠΏΡΠΎΡΠ΅ΡΠΎΡ, IOPS, ΠΌΡΠ΅ΠΆΠ° - ΠΎΠ±ΡΠΎ ΠΎΠΊΠΎΠ»ΠΎ 12 Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ. Π ΠΏΡΠΎΡΠΈΠ²Π΅Π½ ΡΠ»ΡΡΠ°ΠΉ ΡΠ΅ ΡΠ΅ Π½Π°ΡΠΈΡΠ°Ρ ββΡΡΡΠΎ C-Π³ΡΡΠΏΠΈ (βC-Π³ΡΡΠΏΠΈβ).
ΠΠΎΠ½ΡΡΠΎΠ»Π½ΠΈΡΠ΅ Π³ΡΡΠΏΠΈ ΡΠΏΡΠ°Π²Π»ΡΠ²Π°Ρ ΡΠ΅ΡΡΡΡΠΈ Π·Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ. Π§ΡΠ΅Π· ΠΊΠΎΠ½ΡΡΠΎΠ»Π½ΠΈΡΠ΅ Π³ΡΡΠΏΠΈ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΊΠ°ΠΆΠ΅ΠΌ, ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡΡ Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΊΠΎΠ½ΡΡΠΌΠΈΡΠ° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΡΡΡΡΠΈ.
ΠΠ° ΠΏΡΠ»Π½ΠΎΡΠ΅Π½Π½Π° ΡΠ°Π±ΠΎΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΠ·Π°ΡΠΈΡΡΠ° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ: Capabilities, Copy-on-write ΠΈ Π΄ΡΡΠ³ΠΈ.
ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ ΡΠ°, ΠΊΠΎΠ³Π°ΡΠΎ ΠΊΠ°Π·Π²Π°ΠΌΠ΅ Π½Π° ΠΏΡΠΎΡΠ΅Ρ ΠΊΠ°ΠΊΠ²ΠΎ ΠΌΠΎΠΆΠ΅ ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠ°Π²ΠΈ. ΠΠ° Π½ΠΈΠ²ΠΎ ΡΠ΄ΡΠΎ ββΡΠΎΠ²Π° ΡΠ° ΠΏΡΠΎΡΡΠΎ ΡΠ°ΡΡΠ΅ΡΠ½ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ root ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡ ΠΈΠΌΠ° ΠΏΡΠ»Π½ΠΈ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠ°Π²ΠΈ Π²ΡΠΈΡΠΊΠΎ. Π‘ΡΡΠ²ΡΡΡΡ Π·Π° Π²ΡΠ΅ΠΌΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅: ΡΠΎΠΉ ΠΈΠΌΠ° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π° Time Capsule ΠΈ ΡΠΎΠ²Π° Π΅ Π²ΡΠΈΡΠΊΠΎ. ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π³ΡΠ²ΠΊΠ°Π²ΠΎ Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π·Π° ΠΏΡΠΎΡΠ΅ΡΠΈ ΠΈ ΠΏΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ Π΄Π° ΡΠ΅ Π·Π°ΡΠΈΡΠΈΡΠ΅.
Π‘ΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Copy-on-write Π½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ°Π±ΠΎΡΠΈΠΌ Ρ Docker ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ Π΄Π° Π³ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΏΠΎ-Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ.
Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° Docker ΠΈΠΌΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΡΡΡ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡΠ° Ρ Cgroups v2, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ ΡΠ΅ ΡΠΎΠΊΡΡΠΈΡΠ° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ Π²ΡΡΡ Ρ Cgroups v1.
ΠΠΎ Π΄Π° ΡΠ΅ Π²ΡΡΠ½Π΅ΠΌ ΠΊΡΠΌ ΠΈΡΡΠΎΡΠΈΡΡΠ°.
ΠΠΎΠ³Π°ΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠΈΡΠ΅ Π·Π° Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ ΠΏΠΎΡΠ²ΠΈΡ Π° Π½Π° Π½ΠΈΠ²ΠΎ ΡΠ΄ΡΠΎ, ΡΠ΅ Π·Π°ΠΏΠΎΡΠ½Π°Ρ Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎ. ΠΠ²ΡΡΡ Π΅Π΄ΡΡ Π½Π° Ρ ΠΈΠΏΠ΅ΡΠ²Π°ΠΉΠ·ΠΎΡΠ° ΠΈΠ·ΡΠ΅Π·Π½Π°, Π½ΠΎ Π½ΡΠΊΠΎΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΎΡΡΠ°Π½Π°Ρ Π°:
- Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ: ΡΠ΅ Π²ΠΊΠ°ΡΠ²Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΊΡΠΏ ΡΠ°Π·Π»ΠΈΡΠ΅Π½ ΡΠΎΡΡΡΠ΅Ρ Π² Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡ OpenVZ ΠΈ Π² ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΏΠ°ΠΊ ΡΠ΅ ΠΎΠΊΠ°Π·Π²Π° Π΄ΠΎΡΡΠ° Π³ΠΎΠ»ΡΠΌΠΎ;
- ΠΡΠΌΠ° Π½ΠΎΡΠΌΠ°Π»Π΅Π½ ΡΡΠ°Π½Π΄Π°ΡΡ Π·Π° ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅ ΠΈ Π΄ΠΎΡΡΠ°Π²ΠΊΠ°, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡΡ ΡΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅ ΠΎΡΡΠ°Π²Π°. ΠΠΌΠ° ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π°ΡΠΎ Π΄Π²Π΅ ΠΏΠ°ΡΡΠ΅ΡΠ° ΠΊΠΎΠ΄ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π΅Π΄Π½Π° ΠΈ ΡΡΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, Π½ΠΎ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π²Π΅ΡΡΠΈΠΈ. ΠΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΡ .
ΠΠ° Π΄Π° ΡΠ΅ ΡΠ΅ΡΠ°Ρ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅Π·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, Π΄ΠΎΠΉΠ΄Π΅ ΡΠ»Π΅Π΄Π²Π°ΡΠ°ΡΠ° Π΅ΡΠ°.
ΠΡΠ°ΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅
ΠΠΎΠ³Π°ΡΠΎ Π½Π°ΡΡΡΠΏΠΈ Π΅ΡΠ°ΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅, ΡΠΈΠ»ΠΎΡΠΎΡΠΈΡΡΠ° Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΡΡΡ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ:
- ΠΠ΄ΠΈΠ½ ΠΏΡΠΎΡΠ΅Ρ - Π΅Π΄ΠΈΠ½ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ.
- ΠΠΈΠ΅ Π΄ΠΎΡΡΠ°Π²ΡΠΌΠ΅ Π²ΡΠΈΡΠΊΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ°, Π² Π½Π΅Π³ΠΎΠ²ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ. Π’ΠΎΠ²Π° ΠΈΠ·ΠΈΡΠΊΠ²Π° ΡΡΠ·Π°Π½Π΅ Π½Π° ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠΈΡΠ΅ Π² ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³ΠΈ.
- ΠΠΎΠ»ΠΊΠΎΡΠΎ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ Π΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ - ΠΈΠΌΠ° ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ, ΡΠΎ ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎ-Π±ΡΡΠ·ΠΎ ΠΈ Ρ.Π½.
- Π‘Π»ΡΡΠ°ΠΈΡΠ΅ ΡΡΠ°Π²Π°Ρ Π΅ΡΠΈΠΌΠ΅ΡΠ½ΠΈ.
ΠΠΎΠΌΠ½ΠΈΡΠ΅ Π»ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ ΠΊΠ°Π·Π°Ρ Π·Π° Π΄ΠΎΠΌΠ°ΡΠ½ΠΈ Π»ΡΠ±ΠΈΠΌΡΠΈ ΡΡΠ΅ΡΡ Π³ΠΎΠ²Π΅Π΄Π°? ΠΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΈΡΠ΅ Π±ΡΡ Π° ΠΊΠ°ΡΠΎ Π΄ΠΎΠΌΠ°ΡΠ½ΠΈ ΠΆΠΈΠ²ΠΎΡΠ½ΠΈ, Π½ΠΎ ΡΠ΅Π³Π° ΡΡΠ°Π½Π°Ρ Π° ΠΊΠ°ΡΠΎ Π΄ΠΎΠ±ΠΈΡΡΠΊ. ΠΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° ΠΈΠΌΠ°ΡΠ΅ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ - Π΅Π΄Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘Π΅Π³Π° ΠΈΠΌΠ° 100 ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³ΠΈ, 100 ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°. ΠΡΠΊΠΎΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΈΠΌΠ°Ρ 2-3 ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ. ΠΠ° Π½Π°Ρ ΡΡΠ°Π²Π° ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ Π²Π°ΠΆΠ½ΠΎ Π΄Π° ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ°ΠΌΠ΅ Π²ΡΠ΅ΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ. Π’ΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ Π΅ ΠΏΠΎ-Π²Π°ΠΆΠ½ΠΎ Π·Π° Π½Π°Ρ, Π΅ Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΡΠ°ΠΌΠ°ΡΠ° ΡΡΠ»ΡΠ³Π°: ΠΊΠ°ΠΊΠ²ΠΎ ΠΏΡΠ°Π²ΠΈ ΡΠΎΠ·ΠΈ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ. Π’ΠΎΠ²Π° ΠΏΡΠΎΠΌΠ΅Π½Ρ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° ΠΊΡΠΌ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ΡΠΎ.
ΠΡΠ΅Π· 2014-2015 Π³. Docker ΠΏΡΠΎΡΡΡΡΡΠ²Π° - ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΡΠ°, Π·Π° ΠΊΠΎΡΡΠΎ ΡΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠΌ ΡΠ΅Π³Π°.
Docker ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΡΠΈΠ»ΠΎΡΠΎΡΠΈΡΡΠ° ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·ΠΈΡΠ° ΠΏΠ°ΠΊΠ΅ΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ°. ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Docker, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ°ΠΌΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠΈΠΌ Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, Π΄Π° Π³ΠΎ ΠΈΠ·ΡΠ΅Π³Π»ΠΈΠΌ ΠΎΡ ΡΠ°ΠΌ ΠΈ Π΄Π° Π³ΠΎ Π²Π½Π΅Π΄ΡΠΈΠΌ.
ΠΠΎΡΡΠ°Π²ΡΠΌΠ΅ Π²ΡΠΈΡΠΊΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π½Π° Docker, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡΡ ΡΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠ° Π΅ ΡΠ΅ΡΠ΅Π½. Docker Π³Π°ΡΠ°Π½ΡΠΈΡΠ° Π²ΡΠ·ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΠΎΡΡ. ΠΠΈΡΠ»Ρ, ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Ρ ΠΎΡΠ° ΡΠ° ΡΠ΅ ΡΠ±Π»ΡΡΠΊΠ²Π°Π»ΠΈ Ρ Π½Π΅Π²ΡΠ·ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΠΎΡΡ: Π²ΡΠΈΡΠΊΠΎ Π²ΠΈ ΡΠ°Π±ΠΎΡΠΈ, Π±ΡΡΠ½Π΅ΡΠ΅ Π³ΠΎ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΈ ΡΠ°ΠΌ ΡΠΎ ΡΠΏΠΈΡΠ° Π΄Π° ΡΠ°Π±ΠΎΡΠΈ. Π‘ Docker ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΈΠ·ΡΠ΅Π·Π²Π°. ΠΠΊΠΎ Π²Π°ΡΠΈΡΡ Docker ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΡΡΠ°ΡΡΠΈΡΠ° ΠΈ ΠΏΡΠ°Π²ΠΈ ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ ΡΡΡΠ±Π²Π°, ΡΠΎΠ³Π°Π²Π° Ρ Π³ΠΎΠ»ΡΠΌΠ° ΡΡΠ΅ΠΏΠ΅Π½ Π½Π° Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡ ΡΠΎΠΉ ΡΠ΅ Π·Π°ΠΏΠΎΡΠ½Π΅ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΈ ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ ΡΡΡΠΎΡΠΎ ΡΠ°ΠΌ.
ΠΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ Π·Π° ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈΡΠ΅
ΠΠΈΠ½Π°Π³ΠΈ ΠΈΠΌΠ° ΡΠΏΠΎΡΠΎΠ²Π΅ Π·Π° ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈΡΠ΅ ΡΠ°Π·Ρ ΠΎΠ΄ΠΈ. ΠΡΠΊΠΎΠΈ Ρ ΠΎΡΠ° ΡΠΌΡΡΠ°Ρ, ΡΠ΅ Docker Π½Π΅ Π½ΠΎΡΠΈ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux ΠΈ Π²ΡΠΈΡΠΊΠΈ Π½Π΅Π³ΠΎΠ²ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΠ·ΠΈΡΠ°Π½Π΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, βΠ°ΠΊΠΎ ΠΊΠ°ΠΆΠ΅ΡΠ΅, ΡΠ΅ Docker Π΅ Π½Π°Π΄ Π³Π»Π°Π²Π°ΡΠ°, ΡΠΎΠ³Π°Π²Π° ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux Π΅ Π½Π°Π΄ Π³Π»Π°Π²Π°ΡΠ°.β
ΠΡ Π΄ΡΡΠ³Π° ΡΡΡΠ°Π½Π°, Π°ΠΊΠΎ Π½Π°Π²Π»Π΅Π·Π΅ΡΠ΅ ΠΏΠΎ-Π΄ΡΠ»Π±ΠΎΠΊΠΎ, Π½Π°ΠΈΡΡΠΈΠ½Π° ΠΈΠΌΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π½Π΅ΡΠ° Π² Docker, Π·Π° ΠΊΠΎΠΈΡΠΎ Ρ ΡΠ΄ΡΠ»ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠ°ΠΆΠ΅, ΡΠ΅ ΡΠ° ΠΈΠ·Π»ΠΈΡΠ½ΠΈ.
ΠΡΡΠ²ΠΈΡΡ Π΅ PID namespace. ΠΠΎΠ³Π°ΡΠΎ ΠΏΠΎΡΡΠ°Π²ΠΈΠΌ ΠΏΡΠΎΡΠ΅Ρ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΎΡ ΠΈΠΌΠ΅Π½Π°, ΡΠΎΠΉ ΠΏΠΎΠ»ΡΡΠ°Π²Π° PID 1. Π ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ ΡΠΎΠ·ΠΈ ΠΏΡΠΎΡΠ΅Ρ ΠΈΠΌΠ° Π΄ΡΡΠ³ PID, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ° Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎΡΠΎ ΠΎΡ ΠΈΠΌΠ΅Π½Π° Π½Π° Ρ ΠΎΡΡΠ°, ΠΈΠ·Π²ΡΠ½ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ°ΡΡΠΈΡΠ°Ρ ΠΌΠ΅ Nginx Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, ΡΠΎΠΉ ΡΡΠ°Π½Π° PID 1 (Π³Π»Π°Π²Π΅Π½ ΠΏΡΠΎΡΠ΅Ρ). Π Π½Π° Ρ ΠΎΡΡΠ° ΠΈΠΌΠ° PID 12623. Π Π΅ ΡΡΡΠ΄Π½ΠΎ Π΄Π° ΡΠ΅ ΠΊΠ°ΠΆΠ΅ ΠΊΠΎΠ»ΠΊΠΎ ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ ΡΠ°.
ΠΡΠΎΡΠΎΡΠΎ Π½Π΅ΡΠΎ ΡΠ° Cgroups. ΠΠ΅ΠΊΠ° Π²Π·Π΅ΠΌΠ΅ΠΌ Cgroups ΠΏΠΎ ΠΏΠ°ΠΌΠ΅Ρ, ΡΠΎΠ΅ΡΡ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π΄Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠΌ ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ. ΠΠΎΠ³Π°ΡΠΎ Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½, Π±ΡΠΎΡΡΠΈΡΠ΅ ΠΈ ΠΎΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΡΠ΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Ρ: ΡΠ΄ΡΠΎΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ ΠΊΠΎΠ»ΠΊΠΎ ΡΡΡΠ°Π½ΠΈΡΠΈ ΡΠ° Π±ΠΈΠ»ΠΈ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΈ ΠΊΠΎΠ»ΠΊΠΎ ΡΠ° Π²ΡΠ΅ ΠΎΡΠ΅ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΈ Π·Π° ΡΠΎΠ·ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ. Π’ΠΎΠ²Π° Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π΅ ΡΠ΅ΠΆΠΈΠΉΠ½ΠΎ, Π½ΠΎ Π½Π΅ ΡΡΠΌ Π²ΠΈΠΆΠ΄Π°Π» ΡΠΎΡΠ½ΠΈ ΠΏΡΠΎΡΡΠ²Π°Π½ΠΈΡ Π·Π° ΡΠΎΠ²Π° ΠΊΠ°ΠΊ ΡΠ΅ ΠΎΡΡΠ°Π·ΡΠ²Π° Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°. Π Π°Π· ΡΠ°ΠΌΠΈΡΡ Π½Π΅ Π·Π°Π±Π΅Π»ΡΠ·Π°Ρ , ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, ΡΠ°Π±ΠΎΡΠ΅ΡΠΎ Π² Docker, ΠΈΠ·Π²Π΅Π΄Π½ΡΠΆ ΠΏΡΠ΅ΡΡΡΠΏΡ ΡΡΠ·ΠΊΠ° Π·Π°Π³ΡΠ±Π° Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ.
Π ΠΎΡΠ΅ Π΅Π΄Π½Π° Π·Π°Π±Π΅Π»Π΅ΠΆΠΊΠ° ΠΎΡΠ½ΠΎΡΠ½ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°. ΠΡΠΊΠΎΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π½Π° ΡΠ΄ΡΠΎΡΠΎ ΡΠ΅ ΠΏΡΠ΅Π΄Π°Π²Π°Ρ ΠΎΡ Ρ ΠΎΡΡΠ° ΠΊΡΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°. ΠΠΎ-ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ Π½ΡΠΊΠΎΠΈ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ. ΠΡΠΎ Π·Π°ΡΠΎ, Π°ΠΊΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ Π½Π΅ΡΠΎ Π²ΠΈΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎ Π² Docker, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π½Π΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΌΡΠ΅ΠΆΠ°ΡΠ°, ΡΠΎΠ³Π°Π²Π° ΡΡΡΠ±Π²Π° ΠΏΠΎΠ½Π΅ Π΄Π° ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°ΡΠ΅ ΡΠ΅Π·ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ. ΠΡΠΊΠ°ΠΊΡΠ² nf_conntrack Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ.
ΠΡΠ½ΠΎΡΠ½ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΡΠ° Docker
Docker ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°:
- Docker Daemon Π΅ ΡΡΡΠΈΡΡ Container Engine; ΠΏΡΡΠΊΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ.
- Docker CII Π΅ ΠΏΠΎΠΌΠΎΡΠ½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Docker.
- Dockerfile - ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΊΠ°ΠΊ Π΄Π° ΠΈΠ·Π³ΡΠ°Π΄ΠΈΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅.
- ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ β ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, ΠΎΡ ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ ΡΠ°Π·Π³ΡΡΡΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡΡ.
- ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ.
- Π Π΅Π³ΠΈΡΡΡΡΡΡ Π½Π° Docker Π΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
Π‘Ρ Π΅ΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΠ°ΠΊΠ°:
Docker Π΄Π΅ΠΌΠΎΠ½ ΡΠ°Π±ΠΎΡΠΈ Π½Π° Docker_host ΠΈ ΡΡΠ°ΡΡΠΈΡΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ. ΠΠΌΠ° ΠΊΠ»ΠΈΠ΅Π½Ρ, ΠΊΠΎΠΉΡΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ: ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°. Docker daemon ΠΎΡΠΈΠ²Π° Π² ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΡ ΠΈ Π³ΠΈ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°. ΠΠ»ΠΈΠ΅Π½ΡΡΡ Docker ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΡΡΡΠ΅ΡΡΠ²ΡΠ²Π° Π΄ΠΎΡΡΡΠΏ ΠΊΠ°ΠΊΡΠΎ Π»ΠΎΠΊΠ°Π»Π½ΠΎ (Π΄ΠΎ Unix ΡΠΎΠΊΠ΅Ρ), ΡΠ°ΠΊΠ° ΠΈ ΡΡΠ΅Π· TCP ΠΎΡ ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ Ρ ΠΎΡΡ.
ΠΠ΅ΠΊΠ° Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΠΌ ΠΏΡΠ΅Π· Π²ΡΠ΅ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ.
ΠΠΎΠΊΠ΅Ρ Π΄Π΅ΠΌΠΎΠ½ - ΡΠΎΠ²Π° Π΅ ΡΡΡΠ²ΡΡΠ½Π°ΡΠ° ΡΠ°ΡΡ, ΡΡ ΡΠ°Π±ΠΎΡΠΈ Π½Π° Ρ ΠΎΡΡ ΠΌΠ°ΡΠΈΠ½Π°ΡΠ°: ΠΈΠ·ΡΠ΅Π³Π»Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΡΠ°ΡΡΠΈΡΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΠΎΡ ΡΡΡ , ΡΡΠ·Π΄Π°Π²Π° ΠΌΡΠ΅ΠΆΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ, ΡΡΠ±ΠΈΡΠ° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅. ΠΠΎΠ³Π°ΡΠΎ ΠΊΠ°Π·Π²Π°ΠΌΠ΅ βΡΡΠ·Π΄Π°ΠΉΡΠ΅ ΠΎΠ±ΡΠ°Π·β, Π΄Π΅ΠΌΠΎΠ½ΡΡ ΠΏΡΠ°Π²ΠΈ ΠΈ ΡΠΎΠ²Π°.
Docker CLI β Docker ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠ° ΡΠ°ΡΡ, ΠΊΠΎΠ½Π·ΠΎΠ»Π½Π° ΠΏΠΎΠΌΠΎΡΠ½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ Π΄Π΅ΠΌΠΎΠ½Π°. ΠΠΎΠ²ΡΠ°ΡΡΠΌ, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Π½Π΅ ΡΠ°ΠΌΠΎ Π»ΠΎΠΊΠ°Π»Π½ΠΎ, Π½ΠΎ ΠΈ Π² ΠΌΡΠ΅ΠΆΠ°ΡΠ°.
ΠΡΠ½ΠΎΠ²Π½ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ:
docker ps - ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ Π½Π° Ρ
ΠΎΡΡΠ° Π½Π° Docker.
Π΄ΠΎΠΊΠ΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ - ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΈΠ·ΡΠ΅Π³Π»Π΅Π½ΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΎ.
docker search <> - ΡΡΡΡΠ΅Π½Π΅ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΡ.
docker pull <> - ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΡ Π½Π° ΠΌΠ°ΡΠΈΠ½Π°ΡΠ°.
Π΄ΠΎΠΊΠ΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ < > - ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ.
docker run <> - ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°.
docker rm <> - ΠΏΡΠ΅ΠΌΠ°Ρ
Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°.
Π΄ΠΎΠΊΠ΅Ρ Π΄Π½Π΅Π²Π½ΠΈΡΠΈ <> - Π΄Π½Π΅Π²Π½ΠΈΡΠΈ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ
docker start/stop/restart <> - ΡΠ°Π±ΠΎΡΠ° Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°
ΠΠΊΠΎ Π²Π»Π°Π΄Π΅Π΅ΡΠ΅ ΡΠ΅Π·ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΈ ΡΡΠ΅ ΡΠ²Π΅ΡΠ΅Π½ΠΈ Π² ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ ΠΈΠΌ, ΡΡΠΈΡΠ°ΠΉΡΠ΅ ΡΠ΅ Π·Π° 70% ΠΎΠΏΠΈΡΠ΅Π½ Π² Docker Π½Π° Π½ΠΈΠ²ΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π».
ΠΠΎΠΊΠ΅Ρ ΡΠ°ΠΉΠ» - ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. ΠΠΎΡΡΠΈ Π²ΡΡΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π΅ Π½ΠΎΠ² ΡΠ»ΠΎΠΉ. ΠΠ΅ΠΊΠ° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π΅Π΄ΠΈΠ½ ΠΏΡΠΈΠΌΠ΅Ρ.
ΠΡΠΎ ΠΊΠ°ΠΊ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Dockerfile: ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΎΡΠ»ΡΠ²ΠΎ, Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈ ΠΎΡΠ΄ΡΡΠ½ΠΎ. ΠΡΡΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΊΠΎΡΡΠΎ Π΅ ΡΡΠΊ (ΠΈ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½Π° Π² Dockerfile) ΡΡΠ·Π΄Π°Π²Π° Π½ΠΎΠ² ΡΠ»ΠΎΠΉ Π² Image.
ΠΠΎΡΠΈ Π΄Π° ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΡΠ΅ Π»ΡΠ²Π°ΡΠ° ΡΡΡΠ°Π½Π°, ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»Π½ΠΎ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π°. ΠΠ°Π·Π²Π°ΠΌΠ΅: βΡΡΠ·Π΄Π°ΠΉΡΠ΅ ΠΏΠ°ΠΏΠΊΠ° Π·Π° Π½Π°Ρβ - ΡΠΎΠ²Π° Π΅ Π΅Π΄ΠΈΠ½ ΡΠ»ΠΎΠΉ. βΠΠ°ΠΏΡΠ°Π²Π΅ΡΠ΅ ΠΏΠ°ΠΏΠΊΠ°ΡΠ° ΡΠ°Π±ΠΎΡΠ΅ΡΠ°β Π΅ Π΄ΡΡΠ³ ΡΠ»ΠΎΠΉ ΠΈ Ρ.Π½. Π‘Π»ΠΎΠ΅Π²Π°ΡΠ° ΡΠΎΡΡΠ° ΠΏΡΠ°Π²ΠΈ ΠΆΠΈΠ²ΠΎΡΠ° ΠΏΠΎ-Π»Π΅ΡΠ΅Π½. ΠΠΊΠΎ ΡΡΠ·Π΄Π°ΠΌ Π΄ΡΡΠ³ Dockerfile ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Ρ Π½Π΅ΡΠΎ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΡΠ΅Π΄ - ΡΡΠ°ΡΡΠΈΡΠ°ΠΌ Π½Π΅ΡΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΎ ΠΎΡ "python" "main.py" ΠΈΠ»ΠΈ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΌ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π΄ΡΡΠ³ ΡΠ°ΠΉΠ» - ΡΠΎΠ³Π°Π²Π° ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈΡΠ΅ ΡΠ»ΠΎΠ΅Π²Π΅ ΡΠ΅ Π±ΡΠ΄Π°Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΊΠ°ΡΠΎ ΠΊΠ΅Ρ.
ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ - ΡΠΎΠ²Π° Π΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½Π° ΠΎΠΏΠ°ΠΊΠΎΠ²ΠΊΠ°; ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ°Ρ ΠΎΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ. ΠΠΊΠΎ ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌ Docker ΠΎΡ Π³Π»Π΅Π΄Π½Π° ΡΠΎΡΠΊΠ° Π½Π° ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ (ΡΡΠΊΠ°Ρ ΡΠ°Π±ΠΎΡΠΈΠΌ Ρ deb ΠΈΠ»ΠΈ rpm ΠΏΠ°ΠΊΠ΅ΡΠΈ), ΡΠΎΠ³Π°Π²Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΏΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ Π΅ rpm ΠΏΠ°ΠΊΠ΅Ρ. Π§ΡΠ΅Π· yum install ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΌΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, Π΄Π° Π³ΠΎ ΠΈΠ·ΡΡΠΈΠ΅ΠΌ, Π΄Π° Π³ΠΎ Π½Π°ΠΌΠ΅ΡΠΈΠΌ Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ ΠΈ Π΄Π° Π³ΠΎ ΠΈΠ·ΡΠ΅Π³Π»ΠΈΠΌ. Π’ΡΠΊ Π΅ ΠΏΠΎΡΡΠΈ ΡΡΡΠΎΡΠΎ: ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ°Ρ ΠΎΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ ΡΠ΅ Π² ΡΠ΅Π³ΠΈΡΡΡΡΠ° Π½Π° Docker (ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° yum, Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅) ΠΈ Π²ΡΡΠΊΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ° SHA-256 Ρ Π΅Ρ, ΠΈΠΌΠ΅ ΠΈ ΡΠ°Π³.
ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π΅ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ΠΎ ΡΠΏΠΎΡΠ΅Π΄ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈΡΠ΅ ΠΎΡ Dockerfile. ΠΡΡΠΊΠ° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΎΡ Dockerfile ΡΡΠ·Π΄Π°Π²Π° Π½ΠΎΠ² ΡΠ»ΠΎΠΉ. Π‘Π»ΠΎΠ΅Π²Π΅ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ.
ΠΠΎΠΊΠ΅Ρ ΡΠ΅Π³ΠΈΡΡΡΡ Π΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π·Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° Docker. ΠΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° ΠΠ‘, Docker ΠΈΠΌΠ° ΠΏΡΠ±Π»ΠΈΡΠ΅Π½ ΡΡΠ°Π½Π΄Π°ΡΡΠ΅Π½ ΡΠ΅Π³ΠΈΡΡΡΡ - dockerhub. ΠΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ ΡΠ²ΠΎΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½ ΡΠ΅Π³ΠΈΡΡΡΡ Π½Π° Docker.
ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ - ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ° ΠΎΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ. Π‘ΡΠ·Π΄Π°Π΄ΠΎΡ ΠΌΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΏΠΎΡΠ΅Π΄ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈΡΠ΅ ΠΎΡ Dockerfile, ΡΠ»Π΅Π΄ ΠΊΠΎΠ΅ΡΠΎ Π³ΠΎ ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ ΠΎΡ ΡΠΎΠ²Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. Π’ΠΎΠ·ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π΅ ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ ΠΎΡ Π΄ΡΡΠ³ΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΠΈ ΡΡΡΠ±Π²Π° Π΄Π° ΡΡΠ΄ΡΡΠΆΠ° Π²ΡΠΈΡΠΊΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ. Π ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ Π΅Π΄ΠΈΠ½ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ - Π΅Π΄ΠΈΠ½ ΠΏΡΠΎΡΠ΅Ρ. Π‘Π»ΡΡΠ²Π° ΡΠ΅ Π΄Π° ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ Π΄Π²Π° ΠΏΡΠΎΡΠ΅ΡΠ°, Π½ΠΎ ΡΠΎΠ²Π° Π΄ΠΎΠ½ΡΠΊΡΠ΄Π΅ ΠΏΡΠΎΡΠΈΠ²ΠΎΡΠ΅ΡΠΈ Π½Π° ΠΈΠ΄Π΅ΠΎΠ»ΠΎΠ³ΠΈΡΡΠ° Π½Π° Docker.
ΠΠ·ΠΈΡΠΊΠ²Π°Π½Π΅ΡΠΎ βΠ΅Π΄ΠΈΠ½ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, Π΅Π΄ΠΈΠ½ ΠΏΡΠΎΡΠ΅Ρβ Π΅ ΡΠ²ΡΡΠ·Π°Π½ΠΎ Ρ PID ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎΡΠΎ ΠΎΡ ΠΈΠΌΠ΅Π½Π°. ΠΠΎΠ³Π°ΡΠΎ ΠΏΡΠΎΡΠ΅Ρ Ρ PID 1 ΡΡΠ°ΡΡΠΈΡΠ° Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎΡΠΎ Π½Π° ΠΈΠΌΠ΅Π½Π°ΡΠ°, Π°ΠΊΠΎ Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎ ΡΠΌΡΠ΅, ΡΠΎΠ³Π°Π²Π° ΡΠΌΠΈΡΠ° ΠΈ ΡΠ΅Π»ΠΈΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ. ΠΠΊΠΎ ΡΠ°ΠΌ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ Π΄Π²Π° ΠΏΡΠΎΡΠ΅ΡΠ°: Π΅Π΄ΠΈΠ½ΠΈΡΡ Π΅ ΠΆΠΈΠ², Π° Π΄ΡΡΠ³ΠΈΡΡ Π΅ ΠΌΡΡΡΡΠ², ΡΠΎΠ³Π°Π²Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡΡ ΡΠ΅ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈ Π΄Π° ΠΆΠΈΠ²Π΅Π΅. ΠΠΎ ΡΠΎΠ²Π° Π΅ Π²ΡΠΏΡΠΎΡ Π½Π° Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠΈ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ, ΡΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° ΡΡΡ Π² Π΄ΡΡΠ³ΠΈ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΈ.
ΠΠ° Π΄Π° ΠΏΡΠΎΡΡΠΈΡΠ΅ ΠΏΠΎ-ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ ΠΈ ΠΏΡΠ»Π½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° Π½Π° ΠΊΡΡΡΠ°, ΠΌΠΎΠ»Ρ, ΠΏΠΎΡΠ»Π΅Π΄Π²Π°ΠΉΡΠ΅ Π²ΡΡΠ·ΠΊΠ°ΡΠ°: β
ΠΠ²ΡΠΎΡ: ΠΠ°ΡΡΠ΅Π» ΠΠ±ΡΠ°Π΅Π², ΡΠ΅ΡΡΠΈΡΠΈΡΠΈΡΠ°Π½ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ Π½Π° Kubernetes, ΠΏΡΠ°ΠΊΡΠΈΠΊΡΠ²Π°Ρ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ Π² Southbridge, Π»Π΅ΠΊΡΠΎΡ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π½Π° ΠΊΡΡΡΠΎΠ²Π΅ ΠΏΠΎ Slurm.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com