ΠΠΎΠΊΠ΅Ρ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Docker ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΠ·Π°ΡΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ»ΠΈΡΠ½ΠΎΠΉ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²ΠΎΠΉ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΉ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ Π² Π½Π΅ΠΉ ΠΏΡΠΎΡΠ΅ΠΊΠ°ΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ ΡΠ΅ΡΡΡΡΡ ΠΈ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ.
ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Docker β Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌΠΈ. ΠΠ½ ΡΠ΅ΡΠ°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π·Π°Π΄Π°Ρ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ², ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π² Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΠ ΠΈ Π΅Π³ΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Docker ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π΄Π»Ρ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Docker
Docker (ΠΠΎΠΊΠ΅Ρ) β ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ΅ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ ΠΈ Π·Π°ΠΏΡΡΠΊΠ° Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² ΡΡΠ΅Π΄Π°Ρ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ½ Π½ΡΠΆΠ΅Π½ Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΡΠ΅ΡΡΡΡΠΎΠ², Π±ΡΡΡΡΠΎΠ³ΠΎ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ Π³ΠΎΡΠΎΠ²ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ ΠΈΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° Π² Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΠ΅Π΄Ρ Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ.
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Docker Π±ΡΠ»Π° Π½Π°ΡΠ°ΡΠ° Π² 2008 Π³ΠΎΠ΄Ρ, Π° Π² 2013 Π³ΠΎΠ΄Ρ ΠΎΠ½ Π±ΡΠ» ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ ΠΊΠ°ΠΊ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΠΌΠΎΠ΅ ΠΠ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ Apache 2.0. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅ΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Docker Π±ΡΠ» Π²ΠΊΠ»ΡΡΠ΅Π½ Π² Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² Red Hat Enterprise Linux 6.5. Π 2017 Π³ΠΎΠ΄Ρ Π±ΡΠ»Π° Π²ΡΠΏΡΡΠ΅Π½Π° ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠ°Ρ Π²Π΅ΡΡΠΈΡ Docker Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ.
Docker ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² Linux, ΡΠ΄ΡΠΎ ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ cgroups, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈΠΌΠ΅Π½. ΠΠ»Ρ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ , ΠΎΡΠ»ΠΈΡΠ½ΡΡ ΠΎΡ Linux, ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠΈΠ»ΠΈΡΡ Kitematic ΠΈΠ»ΠΈ Docker Machine.
ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΡΠ°Π±ΠΎΡΡ Docker β ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΡΠΎΡ ΡΠΈΠΏ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΡΠ΅Π΄Π°ΠΌ β ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΡΡΠΈΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ Π±Π»ΠΎΠΊΠΎΠ² ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΡΠ΅ Π½ΡΠΆΠ½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠΎ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΊΠ° Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² Π½Π° ΠΎΠ΄Π½ΠΎΠΌ Ρ ΠΎΡΡΠ΅.
Docker-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΠ°Π·Π½ΡΡ ΡΡΠ΅Π΄Π°Ρ : Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ΅Π½ΡΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΠΎΠ±Π»Π°ΠΊΠ΅, ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°Ρ ΠΈ Ρ. Π΄.
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Docker
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Docker
ΠΠ»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°ΡΡ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Docker, Π΅Π³ΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈ ΡΠ²ΡΠ·Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Docker Engine
Docker Engine (Β«ΠΠ²ΠΈΠΆΠΎΠΊΒ» Docker) β ΡΠ΄ΡΠΎ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° ΠΠΎΠΊΠ΅ΡΠ°. Β«ΠΠ²ΠΈΠΆΠΎΠΊΒ» ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΡΠ·ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ Docker-ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ (ΡΠ΅Π΅ΡΡΡΠΎΠΌ, ΠΎΠ±ΡΠ°Π·Π°ΠΌΠΈ ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌΠΈ).
ΠΠ»Π΅ΠΌΠ΅Π½ΡΡ Docker Engine
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Docker
Π Π°Π±ΠΎΡΠ° Docker ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°Ρ ΠΊΠ»ΠΈΠ΅Π½Ρ-ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Ρ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ (Ρ ΠΎΡΡΠΎΠΌ). ΠΠ΅ΡΠ²ΡΠΉ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π·Π°ΠΏΡΠΎΡΡ Π½Π° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ , Π° Π²ΡΠΎΡΠΎΠΉ ΠΈΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ.
Π‘Ρ Π΅ΠΌΠ° ΡΠ°Π±ΠΎΡΡ
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΎΠ±ΡΠ°Π·Ρ
Docker-image β ΡΠ°Π±Π»ΠΎΠ½ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ (read-only) Ρ Π½Π°Π±ΠΎΡΠΎΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°. ΠΠ½ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΠ»ΠΎΠ΅Π², ΠΊΠΎΡΠΎΡΡΠ΅ Docker ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΡΠ΅Ρ Π² ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡΠ°Π· ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ UnionFS. Π’Π°ΠΊ ΡΠ΅ΡΠ°Π΅ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π½Π΅ΡΠ°ΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΈΡΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΎΠ±ΡΠ°Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ Π² Docker-file.
ΠΠ»Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Docker-image ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ΅Π΅ΡΡΡΠΎΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠ² ΠΈΠ»ΠΈ ΠΠΎΠΊΠ΅Ρ-ΡΠ΅Π΅ΡΡΡΠΎΠΌ (Docker-registry), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΌ Π·Π°ΠΊΠ°ΡΠΈΠ²Π°ΡΡ Π³ΠΎΡΠΎΠ²ΡΠ΅ ΠΎΠ±ΡΠ°Π·Ρ Ρ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΡΠ΅ΡΠ²ΠΈΡΠ° ΠΈ Ρ ΡΠ°Π½ΠΈΡΡ ΠΈΡ Π² ΡΠ΅Π΅ΡΡΡΠ΅ ΠΠΎΠΊΠ΅Ρ-Ρ ΠΎΡΡΠ°. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ β ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅Π΅ΡΡΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Docker Trusted Registry (DTR).
ΠΡΠ»ΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ°ΠΉΠ», ΡΠΎ ΡΠΊΠ°ΡΠΈΠ²Π°ΡΡΡΡ Π±ΡΠ΄ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½ΡΠΆΠ½ΡΠ΅ ΡΠ»ΠΎΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠ΅ΡΠΈΠ» Π΄ΠΎΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ°Π·, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ»ΠΎΠ². ΠΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ Π±ΡΠ΄ΡΡ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Ρ ΡΠ»ΠΎΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅.
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ
ΠΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΡΡΡΠΎΠΈΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Docker-ΠΎΠ±ΡΠ°Π·ΠΎΠ². ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ Π½Π°ΠΏΡΡΠΌΡΡ ΠΈΠ· ΡΠ΄ΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Linux. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠΎΠΌΡ, ΠΎΠ½ΠΈ ΠΏΠΎΡΡΠ΅Π±Π»ΡΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΌΠ΅Π½ΡΡΠ΅ ΡΠ΅ΡΡΡΡΠΎΠ², ΡΠ΅ΠΌ ΠΏΡΠΈ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΉ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠ·ΠΎΠ»ΡΡΠΈΡ ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΡΡΠ΅Π΄Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ namespace. ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° (ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°) ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΊ Π½Π΅ΠΌΡ Π΄ΠΎΡΡΡΠΏ. ΠΡΠ±ΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ Π²Π½ΡΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°, ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ namespace.
Π ΠΠ‘ Linux ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ Docker Engine ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³Π°Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ β ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΠ΅ Π³ΡΡΠΏΠΏΡ (cgroups). ΠΡΠΈ ΡΡΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ ΡΠ΅ΡΡΡΡΠΎΠ². Π‘groups ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ ΠΎΠ±ΠΌΠ΅Π½ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ² Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌΠΈ, Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ (ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ, ΠΏΡΠ°Π² Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π΄ΡΡΠ³ΠΎΠΌΡ ΡΠ΅ΡΡΡΡΡ ΠΈ Ρ. Π΄.).
ΠΠ²ΠΈΠΆΠΎΠΊ Docker ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½ (namespace), ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΠ΅ Π³ΡΡΠΏΠΏΡ (cgroups) ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ (UnionFS) Π² ΡΠΎΡΠΌΠ°Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°. Π Π±ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π΄ΡΡΠ³ΠΈΡ ΡΠΎΡΠΌΠ°ΡΠΎΠ² ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ BSD Jails ΠΈΠ»ΠΈ Solaris Zones.
Π§ΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°
Docker Compose
ΠΠ»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌΠΈ, ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΡΡΠΎΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΏΠ°ΠΊΠ΅ΡΠ½ΡΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ β Docker Compose.
ΠΠ½ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π΅ Π²ΠΎ Π²ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ . ΠΡΠ»ΠΈ ΠΏΡΠΎΠ΅ΠΊΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΡΡΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π½Π΅ ΡΡΠ΅Π±ΡΡΡΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ², ΡΠΎ Π΄Π»Ρ Π΅Π³ΠΎ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Docker. Docker Compose ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ², Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΡ Π² ΡΠ΅Π±Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΈ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ².
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΈ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ°Π±ΠΎΡΡ Ρ Docker Compose ΠΌΠΎΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ Π·Π΄Π΅ΡΡ.
Docker Swarm
ΠΡΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΈ Ρ ΠΎΡΡΠΎΠ² Π² ΠΊΠ»Π°ΡΡΠ΅Ρ Π½ΡΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠΈΠ»ΠΈΡΠΎΠΉ ΠΊΠ»Π°ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ Docker Swarm. Π₯ΠΎΡΡ, Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΠΉΡΡ Π² Π΅Π³ΠΎ ΡΠΎΡΡΠ°Π²Π΅, Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Β«ΡΠ·Π»ΠΎΠΌΒ» (node), ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ²Π°Π΅Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠΌ ΠΈΠ»ΠΈ ΡΠ°Π±ΠΎΡΠΈΠΌ. ΠΠ΄ΠΈΠ½ ΠΊΠ»Π°ΡΡΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠΉ Β«ΡΠ·Π΅Π»Β».
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΡΠΈΠ»ΠΈΡΡ
ΠΡΠΈΠΌΠ΅ΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ
ΠΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Docker ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅ ΡΡΠ΅Ρ β ΠΎΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π±ΠΎΠ»ΡΡΠΈΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π΄Π°Π½Π½ΡΡ , Π΄ΠΎ ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΡ Π½Π° ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅.
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΠΎΠΊΠ΅Ρ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅, ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΡΠ°ΠΉΠ½ΠΈΠΊΠΎΠ².
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Docker ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π°ΠΆΠ½ΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, ΠΊΠ°ΠΊ ΠΎΡΠ½ΠΎΠ²Π° Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΉ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΡΠ° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΡΠΈΡΠΎΠΊΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΠΎΠΌ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ². ΠΠΎΠΊΠ΅Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ, Π½ΠΎ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ, ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΡΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ (Docker Compose), Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΠΎΠΊΠ΅Ρ-Ρ ΠΎΡΡΠΎΠ² Π² Π΅Π΄ΠΈΠ½ΡΠΉ ΠΊΠ»Π°ΡΡΠ΅Ρ (Docker Swarm).
ΠΠΎΠΊΠ΅Ρ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΠ·ΡΠ΅ΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΡΠΌ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ. ΠΠΎΡΡΠΎΠΌΡ ΠΎΠ½ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡ Π² ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΠΈ ΠΊΠ°ΠΊ Π΄Π»Ρ ΠΎΠΏΡΡΠ½ΡΡ IT-ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΎΠ², ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ². ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ Π²Π΅ΡΡΠΈΡΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ Linux ΠΈ Windows, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ±Π»Π°ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Docker ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π°.
Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΠ·Π°ΡΠΈΠΈ Π½Π° 100%, Docker Π½ΡΠΆΠ½Π° ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ°Ρ ΡΡΠ΅Π΄Π°. ΠΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ β VPS ΠΎΡ Eternalhost. ΠΠΎΡΠ½ΡΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ° Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ Π±ΡΡΡΡΠΎΠ³ΠΎ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ²!
ΠΠΎΠ½ΠΈΠΌΠ°Ρ Docker
Π£ΠΆΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΡΡΠ΅Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ docker Π΄Π»Ρ ΡΡΡΡΠΊΡΡΡΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ/Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ Π²Π΅Π±-ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ². ΠΡΠ΅Π΄Π»Π°Π³Π°Ρ ΡΠΈΡΠ°ΡΠ΅Π»ΡΠΌ Β«Π₯Π°Π±ΡΠ°Ρ Π°Π±ΡΠ°Β» ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ Π²Π²ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠ°ΡΡΠΈ ΠΎ docker β Β«Understanding dockerΒ».
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π΄ΠΎΠΊΠ΅Ρ?
ΠΠΎΠΊΠ΅Ρ β ΡΡΠΎ ΠΎΡΠΊΡΡΡΠ°Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ ΠΈ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Docker ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ Π±ΡΡΡΡΠΎΠ³ΠΎ Π²ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π½ΠΈΡ Π²Π°ΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ docker Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠ΄Π΅Π»ΠΈΡΡ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ Π²Π°ΡΠ΅ΠΉ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ ΠΈ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ Ρ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠΎΠΉ ΠΊΠ°ΠΊ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Docker ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π²ΡΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ Π²Π°Ρ ΠΊΠΎΠ΄ Π±ΡΡΡΡΠ΅Π΅, Π±ΡΡΡΡΠ΅Π΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ, Π±ΡΡΡΡΠ΅Π΅ Π²ΡΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ ΠΌΠ΅ΠΆΠ΄Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ΄Π° ΠΈ Π·Π°ΠΏΡΡΠΊΠ° ΠΊΠΎΠ΄Π°. Docker Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π»Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΎΠΉ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΈ ΡΡΠΈΠ»ΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΈ Π²ΡΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ Π²Π°ΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π ΡΠ²ΠΎΠ΅ΠΌ ΡΠ΄ΡΠ΅ docker ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π»ΡΠ±ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅. ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½Π°Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ Ρ ΠΎΡΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. ΠΠ΅Π³ΠΊΠΎΠ²Π΅ΡΠ½Π°Ρ ΠΏΡΠΈΡΠΎΠ΄Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π³ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡΠ°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ Π΄ΠΎΠ±ΠΈΠ²Π°ΡΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΆΠ΅Π»Π΅Π·Π°.
ΠΠ»Ρ ΡΠ΅Π³ΠΎ Ρ ΠΌΠΎΠ³Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ docker?
ΠΡΡΡΡΠΎΠ΅ Π²ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π½ΠΈΠ΅ Π²Π°ΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
Docker ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΈΠΊΠ»Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. Docker ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ ΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ. Π§ΡΠΎ Π² ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ ΠΈ Π²ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π½ΠΈΡ (continuous integration and deployment workflow).
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Π°ΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΠΈΡΡΡ ΠΊΠΎΠ΄ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ ΠΈ Π΄Π΅Π»ΡΡΡΡ ΡΠ²ΠΎΠΈΠΌ ΡΡΠ΅ΠΊΠΎΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ (Π½Π°Π±ΠΎΡΠΎΠΌ docker ΠΎΠ±ΡΠ°Π·ΠΎΠ²) Ρ ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ. ΠΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π³ΠΎΡΠΎΠ²Ρ, ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΊΠΎΠ΄ ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Π½Π° ΡΠ΅ΡΡΠΎΠ²ΡΡ ΠΏΠ»ΠΎΡΠ°Π΄ΠΊΡ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π»ΡΠ±ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΠ΅ΡΡΡ. Π‘ ΡΠ΅ΡΡΠΎΠ²ΠΎΠΉ ΠΏΠ»ΠΎΡΠ°Π΄ΠΊΠΈ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΎΠΏΡΠ°Π²ΠΈΡΡ ΠΊΠΎΠ΄ ΠΈ ΠΎΠ±ΡΠ°Π·Ρ Π½Π° ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½.
ΠΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎΠ΅ Π²ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅
ΠΡΠ½ΠΎΠ²Π°Π½Π½Π°Ρ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°Ρ docker ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²Π°ΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ Π½Π°Π³ΡΡΠ·ΠΊΡ. Docker ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ ΠΌΠΎΠ³ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° Π²Π°ΡΠ΅ΠΉ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅, ΠΊΠ°ΠΊ ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ ΡΠ°ΠΊ ΠΈ Π½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ Π² Π΄Π°ΡΠ° ΡΠ΅Π½ΡΡΠ΅, ΡΠ°ΠΊ ΠΈ Π² ΠΎΠ±Π»Π°ΠΊΠ΅.
ΠΠΎΡΡΠΈΡΡΠ΅ΠΌΠΎΡΡΡ ΠΈ Π»Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ½Π°Ρ ΠΏΡΠΈΡΠΎΠ΄Π° docker ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π»Π΅Π³ΠΊΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠΏΡΠ°Π²Π»ΡΡΡ Π²Π°ΡΠ΅ΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΎΠΉ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ docker, ΡΡΠΎΠ±Ρ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ ΠΈΠ»ΠΈ ΠΏΠΎΠ³Π°ΡΠΈΡΡ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡΠ΅ΡΠ²ΠΈΡΡ. Π‘ΠΊΠΎΡΠΎΡΡΡ docker ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΏΠΎΡΡΠΈ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΡΡΠΎΠΊΠΈΠ΅ Π½Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ Π½Π°Π³ΡΡΠ·ΠΎΠΊ
Docker Π»Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ΅Π½ ΠΈ Π±ΡΡΡΡ. ΠΠ½ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΡΠΎΠΉΡΠΈΠ²ΡΡ, ΡΠ΅Π½ΡΠ°Π±Π΅Π»ΡΠ½ΡΡ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌ ΠΌΠ°ΡΠΈΠ½Π°ΠΌ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π³ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡΠ°. ΠΠ½ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π² ΡΡΠ»ΠΎΠ²ΠΈΡΡ Π²ΡΡΠΎΠΊΠΈΡ Π½Π°Π³ΡΡΠ·ΠΎΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±Π»Π°ΠΊΠ° ΠΈΠ»ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°-ΠΊΠ°ΠΊ-ΡΠ΅ΡΠ²ΠΈΡ (platform-as-service). ΠΠΎ ΠΎΠ½ ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π΄Π»Ρ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΡ ΠΈ ΡΡΠ΅Π΄Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Ρ ΠΎΡΠ΅ΡΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΈΠ· ΠΈΠΌΠ΅ΡΡΠΈΡ ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ².
ΠΠ»Π°Π²Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Docker
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Docker
Docker ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ-ΡΠ΅ΡΠ²Π΅Ρ. Docker ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΎΠ±ΡΠ°Π΅ΡΡΡ Ρ Π΄Π΅ΠΌΠΎΠ½ΠΎΠΌ Docker, ΠΊΠΎΡΠΎΡΡΠΉ Π±Π΅ΡΠ΅Ρ Π½Π° ΡΠ΅Π±Ρ ΡΡΠΆΠ΅ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ, Π·Π°ΠΏΡΡΠΊΠ°, ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π²Π°ΡΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ². ΠΠ±Π°, ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΈ ΡΠ΅ΡΠ²Π΅Ρ ΠΌΠΎΠ³ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΊ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌΡ Π΄Π΅ΠΌΠΎΠ½Ρ docker. ΠΠ»ΠΈΠ΅Π½Ρ ΠΈ ΡΠ΅ΡΠ²Π΅Ρ ΠΎΠ±ΡΠ°ΡΡΡΡ ΡΠ΅ΡΠ΅Π· ΡΠΎΠΊΠ΅Ρ ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π· RESTful API.
Docker-Π΄Π΅ΠΌΠΎΠ½
ΠΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ΅, Π΄Π΅ΠΌΠΎΠ½ Π·Π° ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π½Π° Ρ ΠΎΡΡ-ΠΌΠ°ΡΠΈΠ½Π΅. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ Π½Π° ΠΏΡΡΠΌΡΡ, Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ.
Docker-ΠΊΠ»ΠΈΠ΅Π½Ρ
Docker-ΠΊΠ»ΠΈΠ΅Π½Ρ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° docker β Π³Π»Π°Π²Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊ Docker. ΠΠ½Π° ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Ρ docker-Π΄Π΅ΠΌΠΎΠ½ΠΎΠΌ.
ΠΠ½ΡΡΡΠΈ docker-Π°
ΠΠ±ΡΠ°Π·Ρ
Docker-ΠΎΠ±ΡΠ°Π· β ΡΡΠΎ read-only ΡΠ°Π±Π»ΠΎΠ½. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ±ΡΠ°Π· ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½ΠΊΡ Ubuntu c Apache ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π½Π° Π½Π΅ΠΉ. ΠΠ±ΡΠ°Π·Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ². Docker ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΎΠ±ΡΠ°Π·Ρ, ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅, ΠΈΠ»ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°ΡΠ°ΡΡ ΠΎΠ±ΡΠ°Π·Ρ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Π΄ΡΡΠ³ΠΈΠΌΠΈ Π»ΡΠ΄ΡΠΌΠΈ. ΠΠ±ΡΠ°Π·Ρ β ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΡΠ±ΠΎΡΠΊΠΈ docker-Π°.
Π Π΅Π΅ΡΡΡ
Docker-ΡΠ΅Π΅ΡΡΡ Ρ ΡΠ°Π½ΠΈΡ ΠΎΠ±ΡΠ°Π·Ρ. ΠΡΡΡ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠ΅ ΠΈ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠ΅ ΡΠ΅Π΅ΡΡΡΡ, ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°ΡΠ°ΡΡ Π»ΠΈΠ±ΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΎΠ±ΡΠ°Π·Ρ. ΠΡΠ±Π»ΠΈΡΠ½ΡΠΉ Docker-ΡΠ΅Π΅ΡΡΡ β ΡΡΠΎ Docker Hub. Π’Π°ΠΌ Ρ ΡΠ°Π½ΠΈΡΡΡ ΠΎΠ³ΡΠΎΠΌΠ½Π°Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ². ΠΠ°ΠΊ Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΠΎΠ±ΡΠ°Π·Ρ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠΎΠ·Π΄Π°Π½Ρ Π²Π°ΠΌΠΈ ΠΈΠ»ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ°Π·Ρ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Π΄ΡΡΠ³ΠΈΠΌΠΈ. Π Π΅Π΅ΡΡΡΡ β ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ.
ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ
ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ ΠΏΠΎΡ ΠΎΠΆΠΈ Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ. Π ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ Π²ΡΠ΅, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΈΠ· ΠΎΠ±ΡΠ°Π·Π°. ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠΎΠ·Π΄Π°Π½Ρ, Π·Π°ΠΏΡΡΠ΅Π½Ρ, ΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ, ΠΏΠ΅ΡΠ΅Π½Π΅ΡΠ΅Π½Ρ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½Ρ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½ ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΎΠΉ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ β ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΡΠ°Π±ΠΎΡΡ.
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Docker?
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΎΠ±ΡΠ°Π·?
ΠΡ ΡΠΆΠ΅ Π·Π½Π°Π΅ΠΌ, ΡΡΠΎ ΠΎΠ±ΡΠ°Π· β ΡΡΠΎ read-only ΡΠ°Π±Π»ΠΎΠ½, ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΎΠ±ΡΠ°Π· ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π½Π°Π±ΠΎΡΠ° ΡΡΠΎΠ²Π½Π΅ΠΉ. Docker ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ union file system Π΄Π»Ρ ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΡ ΡΡΠΈΡ ΡΡΠΎΠ²Π½Π΅ΠΉ Π² ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡΠ°Π·. Union file system ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°ΠΉΠ»Π°ΠΌ ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌΠΈ ΠΈΠ· ΡΠ°Π·Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌ (ΡΠ°Π·Π½ΡΠΌ Π²Π΅ΡΠ²ΡΠΌ) ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎ Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡΡΡ, ΡΠΎΠ·Π΄Π°Π²Π°Ρ ΠΊΠΎΠ³Π΅ΡΠ΅Π½ΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΠ΄Π½Π° ΠΈΠ· ΠΏΡΠΈΡΠΈΠ½, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ docker Π»Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ΅Π½ β ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΊΠΈΡ ΡΡΠΎΠ²Π½Π΅ΠΉ. ΠΠΎΠ³Π΄Π° Π²Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΠ΅ ΠΎΠ±ΡΠ°Π·, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π½ΠΎΠ²ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ. Π’Π°ΠΊ, Π±Π΅Π· Π·Π°ΠΌΠ΅Π½Ρ Π²ΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ°Π·Π° ΠΈΠ»ΠΈ Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅ΡΠ±ΠΎΡΠΊΠΈ, ΠΊΠ°ΠΊ Π²Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠ΄ΡΡΡΡ ΡΠ΄Π΅Π»Π°ΡΡ Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½ΠΎΠΉ, ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎΠ²Π΅Π½Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ. Π Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠ°Π·Π΄Π°Π²Π°ΡΡ Π²Π΅ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ°Π·, ΡΠ°Π·Π΄Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΡΡ ΠΎΠ±ΡΠ°Π·Ρ ΠΏΡΠΎΡΠ΅ ΠΈ Π±ΡΡΡΡΠ΅Π΅.
Π ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π·Π° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ°Π·. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ubuntu, Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ°Π· Ubuntu, ΠΈΠ»ΠΈ fedora, Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ°Π· Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π° Fedora. Π’Π°ΠΊ ΠΆΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ°Π·Ρ ΠΊΠ°ΠΊ Π±Π°Π·Ρ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΡΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΎΠ±ΡΠ°Π· apache, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΊΠ°ΠΊ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ°Π· Π΄Π»Ρ Π²Π°ΡΠΈΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅! Docker ΠΎΠ±ΡΡΠ½ΠΎ Π±Π΅ΡΠ΅Ρ ΠΎΠ±ΡΠ°Π·Ρ ΠΈΠ· ΡΠ΅Π΅ΡΡΡΠ° Docker Hub.
Docker ΠΎΠ±ΡΠ°Π·Ρ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΈΠ· ΡΡΠΈΡ Π±Π°Π·ΠΎΠ²ΡΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ², ΡΠ°Π³ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠΈΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ² ΠΌΡ Π½Π°Π·ΡΠ²Π°Π΅ΠΌ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ. ΠΠ°ΠΆΠ΄Π°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΡΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ°Π· ΠΈΠ»ΠΈ ΡΡΠΎΠ²Π΅Π½Ρ. ΠΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ Π±ΡΠ΄ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ:
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ docker ΡΠ΅Π΅ΡΡΡ?
Π Π΅Π΅ΡΡΡ β ΡΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ docker ΠΎΠ±ΡΠ°Π·ΠΎΠ². ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ°Π·Π° Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π½Π° ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠΌ ΡΠ΅Π΅ΡΡΡΠ΅ Docker Hub ΠΈΠ»ΠΈ Π½Π° Π²Π°ΡΠ΅ΠΌ Π»ΠΈΡΠ½ΠΎΠΌ ΡΠ΅Π΅ΡΡΡΠ΅.
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ docker ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΊΠ°ΡΡ ΡΠΆΠ΅ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΎΠ±ΡΠ°Π·Ρ ΠΈ ΡΠΊΠ°ΡΠΈΠ²Π°ΡΡ ΠΈΡ Π½Π° Π²Π°ΡΡ ΠΌΠ°ΡΠΈΠ½Ρ Ρ docker Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ².
Docker Hub ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠ΅ ΠΈ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° ΠΎΠ±ΡΠ°Π·ΠΎΠ². ΠΠΎΠΈΡΠΊ ΠΈ ΡΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠ² ΠΈΠ· ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π΄Π»Ρ Π²ΡΠ΅Ρ . Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡ Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΠΎΠΈΡΠΊΠ°. Π ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ ΠΈ Π²Π°ΡΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΡΠΈ ΠΎΠ±ΡΠ°Π·Ρ ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈΠ· Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ.
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ?
ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ . ΠΠ°ΠΊ ΠΌΡ Π·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΈΠ· ΠΎΠ±ΡΠ°Π·Π°. ΠΡΠΎΡ ΠΎΠ±ΡΠ°Π· Π³ΠΎΠ²ΠΎΡΠΈΡ docker-Ρ, ΡΡΠΎ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅, ΠΊΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Π·Π°ΠΏΡΡΡΠΈΡΡ, ΠΊΠΎΠ³Π΄Π° Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅. Docker ΠΎΠ±ΡΠ°Π· Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ. ΠΠΎΠ³Π΄Π° docker Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, ΠΎΠ½ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΡΠΎΠ²Π΅Π½Ρ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ/Π·Π°ΠΏΠΈΡΠΈ ΡΠ²Π΅ΡΡ Ρ ΠΎΠ±ΡΠ°Π·Π° (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ union file system, ΠΊΠ°ΠΊ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ ΡΠ°Π½ΡΡΠ΅), Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΏΡΡΠ΅Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
Π§ΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ?
Π§ΡΠΎ ΠΆΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ?
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ
ΠΠΎΠΊΠ΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Go ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ΄ΡΠ° Linux, ΡΡΠΎΠ±Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π».
ΠΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½(namespaces)
Docker ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ namespaces Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ°Π±ΠΎΡΠΈΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Π½Π°Π·ΡΠ²Π°Π΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌΠΈ. ΠΠΎΠ³Π΄Π° ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, docker ΡΠΎΠ·Π΄Π°Π΅Ρ Π½Π°Π±ΠΎΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ² ΠΈΠΌΠ΅Π½ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°.
ΠΡΠΎ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ, ΠΊΠ°ΠΆΠ΄ΡΠΉ Π°ΡΠΏΠ΅ΠΊΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π·Π°ΠΏΡΡΠ΅Π½ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΏΡΠΎΡΡΠ°Π½ΡΡΠ²Π΅ ΠΈΠΌΠ΅Π½, ΠΈ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅.
Control groups (ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΠ΅ Π³ΡΡΠΏΠΏΡ)
Docker ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ cgroups ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΠ΅ Π³ΡΡΠΏΠΏΡ. ΠΠ»ΡΡ ΠΊ ΡΠ°Π±ΠΎΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅Ρ ΡΠ΅ΡΡΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ. ΠΡΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Π±ΡΠ΄ΡΡ Ρ ΠΎΡΠΎΡΠΈΠΌΠΈ ΡΠΎΡΠ΅Π΄ΡΠΌΠΈ. ΠΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΠ΅ Π³ΡΡΠΏΠΏΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ°Π·Π΄Π΅Π»ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ ΠΆΠ΅Π»Π΅Π·Π° ΠΈ Π΅ΡΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΏΡΠ΅Π΄Π΅Π»Ρ ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠ°ΠΌΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ.
Union File System
Union File Sysem ΠΈΠ»ΠΈ UnionFS β ΡΡΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°Ρ ΡΡΠΎΠ²Π½ΠΈ, Π΄Π΅Π»Π°Ρ Π΅Π΅ ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ½ΠΎΠΉ ΠΈ Π±ΡΡΡΡΠΎΠΉ. Docker ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ UnionFS Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±Π»ΠΎΠΊΠΎΠ², ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΡΡΠΎΠΈΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ. Docker ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² UnionFS Π²ΠΊΠ»ΡΡΠ°Ρ: AUFS, btrfs, vfs ΠΈ DeviceMapper.
ΠΠ·ΡΡΠ°Π΅ΠΌ Docker, ΡΠ°ΡΡΡ 1: ΠΎΡΠ½ΠΎΠ²Ρ
Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π°ΡΠ»ΠΈ ΡΠΈΡΠΎΠΊΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΡΡΠ΅ΡΠ°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΠ ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½ΡΡ . ΠΡΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΌΠΈ, ΠΎΠ±Π»Π΅Π³ΡΠ°ΡΡ ΠΈΡ ΡΠ°Π·Π²ΡΡΡΡΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠ»ΡΡΡΠ°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎ ΠΈΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π ΠΎΡΡ ΠΈ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΈΡΠ°ΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π²Π°ΠΆΠ½Π΅ΠΉΡΠΈΡ ΡΡΠ΅Π½Π΄ΠΎΠ² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΡΡΠΈ.
Docker β ΡΡΠΎ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΡΠ°Π·Π²ΡΡΡΡΠ²Π°Π½ΠΈΡ ΠΈ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°Ρ . Π‘Π»ΠΎΠ²ΠΎ Β«DockerΒ» Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΡΠ°Π»ΠΎ ΡΠ΅ΠΌ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ ΡΠΈΠ½ΠΎΠ½ΠΈΠΌΠ° ΡΠ»ΠΎΠ²Π° Β«ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΠ·Π°ΡΠΈΡΒ». Π Π΅ΡΠ»ΠΈ Π²Ρ Π΅ΡΡ Π½Π΅ ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ΡΡ Docker, Π½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ ΠΈΠ»ΠΈ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΠ΅ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΡΠ΅ΡΠ°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½ΡΡ , ΡΠΎ Docker β ΡΡΠΎ ΡΠΎ, Ρ ΡΠ΅ΠΌ Π²Ρ Π½Π΅ΠΏΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π²ΡΡΡΠ΅ΡΠΈΡΠ΅ΡΡ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ.
ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π½Π°Π΅ΡΠ΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Docker, ΡΠ΅ΠΉΡΠ°Ρ Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΠ°Π½Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ°Π³ ΠΊ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ. Π ΠΈΠΌΠ΅Π½Π½ΠΎ, ΠΎΡΠ²ΠΎΠΈΠ² ΡΡΠΎΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π», Π²Ρ ΡΠ°Π·Π±Π΅ΡΡΡΠ΅ΡΡ Ρ ΠΎΡΠ½ΠΎΠ²Π°ΠΌΠΈ Docker ΠΈ ΠΏΠΎΠΏΡΡΠ½ΠΎ ΠΏΡΠΈΠ³ΠΎΡΠΎΠ²ΠΈΡΠ΅ ΠΏΠΈΡΡΡ.
ΠΠ΅ΡΠ°ΡΠΎΡΡ ΠΈ Docker
ΠΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΠΌΡΡ Ρ ΠΌΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ. ΠΡΠ»ΠΈ Π·Π°Π³Π»ΡΠ½ΡΡΡ Π² ΡΠ»ΠΎΠ²Π°ΡΡ ΠΠΆΠ΅Π³ΠΎΠ²Π°, ΡΠΎ ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ ΠΌΠ΅ΡΠ°ΡΠΎΡΠ° β ΡΡΠΎ Β«ΡΠΊΡΡΡΠΎΠ΅ ΠΎΠ±ΡΠ°Π·Π½ΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅, ΡΠΏΠΎΠ΄ΠΎΠ±Π»Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ°, ΡΠ²Π»Π΅Π½ΠΈΡ Π΄ΡΡΠ³ΠΎΠΌΡΒ». ΠΠ΅ΡΠ°ΡΠΎΡΡ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ Π½Π°ΠΌ ΡΡ Π²Π°ΡΡΠ²Π°ΡΡ ΡΡΡΡ Π½ΠΎΠ²ΡΡ Π΄Π»Ρ Π½Π°Ρ ΡΠ²Π»Π΅Π½ΠΈΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°Π²Π½ΠΈΡΡ Ρ ΠΎΠ±ΡΡΠ½ΡΠΌΠΈ ΠΏΠ»Π°ΡΡΠΈΠΊΠΎΠ²ΡΠΌΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌΠΈ. Π’Π°ΠΊΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅, ΡΠ΅ΡΠ΅Π· ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ Π½Π°ΠΌ ΡΠ²ΠΎΠΉΡΡΠ² ΠΎΠ±ΡΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² ΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ², ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΡΠ½Π°ΡΠ°Π»Π° Ρ Π½ΠΈΠΌΠΈ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ, Π° ΠΏΠΎΡΠΎΠΌ ΠΈ ΠΏΠΎΠ½ΡΡΡ ΠΈΡ ΡΡΡΠ½ΠΎΡΡΡ.
ΠΠ°ΠΊ Π²Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅, ΠΌΡ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ Π½Π°ΡΠ°ΡΡ ΡΠ°Π·Π³ΠΎΠ²ΠΎΡ ΠΎ Docker Ρ ΠΏΠΎΠ½ΡΡΠΈΡ Β«ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΒ».
ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ
ΠΠ°ΠΊ ΠΈ ΠΎΠ±ΡΡΠ½ΡΠΉ ΠΏΠ»Π°ΡΡΠΈΠΊΠΎΠ²ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Docker ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ°ΠΌΠΈ:
ΠΠΈΠ²ΡΠ΅ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΌΡ
ΠΡΡ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΡΠ°Π·ΠΌΡΡΠ»Π΅Π½ΠΈΡΠΌ ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°Ρ Docker Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ ΠΈΡ Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°ΠΌΠΈ ΠΆΠΈΠ²ΡΡ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΌΠΎΠ². Β«ΠΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΒ» β ΡΡΠΎ Π½Π΅ΡΡΠΎ, ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π΅ Π² Π½Π΅ΠΊΠΎΠ΅ΠΉ ΡΠΎΡΠΌΠ΅. ΠΡΠΎ Π½Π΅ ΠΏΡΠΎΡΡΠΎ ΠΊΠΎΠ΄. ΠΡΠΎ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠ°Π» ΠΏΡΠΈΡΠΈΠ½ΠΎΠΉ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅Π³ΠΎ-ΡΠΎ Π±ΠΎΠ»ΡΡΠ΅Π³ΠΎ, ΡΠ΅ΠΌ ΠΎΠ½ ΡΠ°ΠΌ, ΡΠ΅Π³ΠΎ-ΡΠΎ, ΠΎΠ±ΡΠ°Π·Π½ΠΎ Π³ΠΎΠ²ΠΎΡΡ, ΠΆΠΈΠ²ΠΎΠ³ΠΎ. ΠΠ°ΠΊ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΆΠΈΠ²ΡΠ΅ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΌΡ, ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π½Π° ΡΠ²Π΅Ρ, ΠΆΠΈΠ²ΡΡ ΠΈ ΡΠΌΠΈΡΠ°ΡΡ.
ΠΠΎΠ½ΡΡΡ, Π²ΡΠ·Π²Π°Π½Π½ΡΠΉ ΠΊ ΠΆΠΈΠ·Π½ΠΈ
ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Docker β ΡΡΠΎ Π²ΡΠ·Π²Π°Π½Π½ΡΠ΅ ΠΊ ΠΆΠΈΠ·Π½ΠΈ ΠΎΠ±ΡΠ°Π·Ρ Docker.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅
ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Docker ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΎΠ±ΡΡΠ½ΡΠΌΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌΠΈ ΠΈΠ»ΠΈ Ρ ΠΆΠΈΠ²ΡΠΌΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΌΠ°ΠΌΠΈ. ΠΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°Π²Π½ΠΈΡΡ ΠΈ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ. Π ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ², ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ β ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π, Π½Π° ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅, ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π½Π°Π±ΠΎΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π½Π° Π½Π΅ΠΊΠΎΠ΅ΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ΅, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Ρ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ Π΄Π°Π½Π½ΡΠ΅.
ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ β ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°
ΠΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Docker Π²Π½ΡΡΡΠΈ Π½Π΅Π³ΠΎ ΠΎΠ±ΡΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊΠ°Ρ-ΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°. ΠΠ½Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅ Π½Π΅ΠΊΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΡΠΎ Π΅ΡΡΡ β Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΎ-ΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅ Docker, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΎΡΠΏΡΠ°Π²ΠΈΠ» Π½Π° Π²Π°Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ ΡΠΎΡ ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΡΠ΅ΠΉΡΠ°Ρ ΡΠΈΡΠ°Π΅ΡΠ΅. ΠΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈ ΡΠΎ, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊΠΎΠ΄, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅ Docker, ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π³ΠΎΠ»ΠΎΡΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Π΄Π°ΡΡΠ΅ Amazon Alexa, ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ ΠΈΡ Π² ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π΄Π»Ρ Π΅ΡΡ ΠΊΠ°ΠΊΠΈΡ -Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ Π² Π΄ΡΡΠ³ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°Ρ .
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Docker ΠΌΠΎΠΆΠ½ΠΎ, Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈ ΡΠΎΠΌ ΠΆΠ΅ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅, ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ². Π, ΠΊΠ°ΠΊ ΠΈ Π»ΡΠ±ΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Docker ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ, ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ, ΡΠ΄Π°Π»ΡΡΡ. ΠΠΎΠΆΠ½ΠΎ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈΡ .
ΠΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ Docker
βΠΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΡΠΈΠ½Ρ
ΠΡΠ΅Π΄ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΈΠΊΠ°ΠΌΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² Docker Π±ΡΠ»ΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΡΠΈΠ½Ρ. ΠΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π°, ΠΊΠ°ΠΊ ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, ΠΈΠ·ΠΎΠ»ΠΈΡΡΠ΅Ρ ΠΎΡ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΡΡΠ΅Π΄Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π΅Π³ΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Docker ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°ΠΌΠΈ ΠΏΠ΅ΡΠ΅Π΄ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΌΠ°ΡΠΈΠ½Π°ΠΌΠΈ. Π’Π°ΠΊ, ΠΎΠ½ΠΈ ΠΏΠΎΡΡΠ΅Π±Π»ΡΡΡ ΠΌΠ΅Π½ΡΡΠ΅ ΡΠ΅ΡΡΡΡΠΎΠ², ΠΈΡ ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡΡ, ΠΎΠ½ΠΈ Π±ΡΡΡΡΠ΅Π΅ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΠΈ ΠΏΡΠΈΡ ΠΎΠ΄ΡΡ Π² ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅. Π ΡΡΠΎΠΌ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² ΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½.
βΠΠ±ΡΠ°Π· ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Docker
ΠΡΡΠ΅ ΠΌΡ ΡΠΆΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ ΠΎΠ± Β«ΠΎΠ±ΡΠ°Π·Π°Ρ Β». Π§ΡΠΎ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅? Π₯ΠΎΡΠΎΡΠΈΠΉ Π²ΠΎΠΏΡΠΎΡ. Π’ΠΎ, ΡΡΠΎ Π² ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Docker Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Β«ΠΎΠ±ΡΠ°Π·ΠΎΠΌΒ», ΠΈΠ»ΠΈ, ΠΏΠΎ-Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈ, Β«imageΒ», ΡΡΠΎ ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, ΡΡΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΡ (ΡΡΠΎ β ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠ»ΠΎΠ²Π° Β«imageΒ»).
ΠΠ±ΡΠ°Π·Ρ Docker β ΡΡΠΎ Π½Π΅ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΈ
ΠΠ±ΡΠ°Π·Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² Docker ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°Π²Π½ΠΈΡΡ Ρ ΡΠ΅ΡΡΠ΅ΠΆΠ°ΠΌΠΈ, Ρ ΡΠΎΡΠΌΠΎΡΠΊΠ°ΠΌΠΈ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π½ΡΡ, ΠΈΠ»ΠΈ Ρ ΠΏΡΠ΅ΡΡ-ΡΠΎΡΠΌΠ°ΠΌΠΈ Π΄Π»Ρ ΠΈΠ·Π³ΠΎΡΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ»Π°ΡΡΠΈΠΊΠΎΠ²ΡΡ ΠΈΠ·Π΄Π΅Π»ΠΈΠΉ. ΠΠ±ΡΠ°Π·Ρ β ΡΡΠΎ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ².
ΠΠ±ΡΠ°Π·Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² Docker ΠΏΠΎΡ ΠΎΠΆΠΈ Π½Π° ΡΠΎΡΠΌΠΎΡΠΊΠΈ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π½ΡΡ
Π ΠΎΠ±ΡΠ°Π·Π΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Docker ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΠΎΠ±ΡΠ°Π· Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΊΠΎΠ΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΎΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΠ½ΠΎ Π·Π°Π²ΠΈΡΠΈΡ. ΠΡΡ ΡΡΠΎ ΡΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Π°Π½ΠΎ Π² Π²ΠΈΠ΄Π΅ Π΅Π΄ΠΈΠ½ΠΎΠΉ ΡΡΡΠ½ΠΎΡΡΠΈ, Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ.
βΠ€Π°ΠΉΠ» Dockerfile
Π€Π°ΠΉΠ» Dockerfile ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π°Π±ΠΎΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, ΡΠ»Π΅Π΄ΡΡ ΠΊΠΎΡΠΎΡΡΠΌ Docker Π±ΡΠ΄Π΅Ρ ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΠΎΠ±ΡΠ°Π· ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°. ΠΡΠΎΡ ΡΠ°ΠΉΠ» ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π·Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ»ΠΎΠΉ ΠΎΠ±ΡΠ°Π·Π°. Π‘ΡΠ΅Π΄ΠΈ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΡ Π±Π°Π·ΠΎΠ²ΡΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ python, ubuntu, alpine.
Π, Π½Π°ΠΊΠΎΠ½Π΅Ρ, Π² ΠΎΠ±ΡΠ°Π·Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡΡ, ΠΏΠΎΠ²Π΅ΡΡ Π²ΡΠ΅Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ , Π΅ΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠΎΠ½ΠΊΠΈΠΉ ΡΠ»ΠΎΠΉ, Π΄Π°Π½Π½ΡΠ΅, Ρ ΡΠ°Π½ΡΡΠΈΠ΅ΡΡ Π² ΠΊΠΎΡΠΎΡΠΎΠΌ, ΠΏΠΎΠ΄Π΄Π°ΡΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΡΠΎ β Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΠΎ ΠΎΠ±ΡΡΠΌΡ ΡΠ»ΠΎΠΉ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΡΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅.
βΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Docker
βΠ Π΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ²
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄ΡΡΠ³ΠΈΠΌ Π»ΡΠ΄ΡΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ°Π·Π°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΡΡΠΎΡ ΠΎΠ±ΡΠ°Π· Π² ΠΎΠ±Π»Π°ΡΠ½ΠΎΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅. Π‘Π°ΠΌΡΠΌ ΠΊΡΡΠΏΠ½ΡΠΌ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΌ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Docker Hub. ΠΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Docker ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
ΠΡ ΡΠΆΠ΅ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅Π³ΠΎ ΠΎΠ±ΡΡΠ΄ΠΈΠ»ΠΈ. ΠΡΠΈΡΠ»ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠΎΠ±ΡΠ°ΡΡ Π²ΡΡ ΡΡΠΎ Π²ΠΌΠ΅ΡΡΠ΅ ΠΈ ΡΡΠ°Π²Π½ΠΈΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌΠΈ Docker Ρ ΠΏΡΠΈΠ³ΠΎΡΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΈΡΡΡ.
ΠΠΎΡΠΎΠ²ΠΈΠΌ Ρ Docker
ΠΠΎΡΠΎΠ²Π°Ρ ΠΏΠΈΡΡΠ° β ΡΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ
ΠΡΡ ΠΎΠ²ΠΊΠ° β ΡΡΠΎ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Docker
ΠΡΡ ΠΎΠ²ΠΊΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π³ΠΎΡΠΎΠ²ΠΈΡΡΡ ΠΏΠΈΡΡΠ°, Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Docker. ΠΡΡ ΠΎΠ²ΠΊΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π½Π° ΠΊΡΡ Π½Π΅, Ρ Π΅Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π³ΠΎΡΠΎΠ²ΠΈΡΡ Π΅Π΄Ρ. Π’ΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅ Docker ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Β«Π³ΠΎΡΠΎΠ²ΠΈΡΡΒ» ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ.
ΠΡΡ ΠΎΠ²ΠΊΡ, Π΅ΡΠ»ΠΈ ΠΎΠ½Π° ΡΠ»Π΅ΠΊΡΡΠΈΡΠ΅ΡΠΊΠ°Ρ, Π²ΠΊΠ»ΡΡΠ°ΡΡ, ΠΏΠΎΠ²ΠΎΡΠ°ΡΠΈΠ²Π°Ρ ΡΡΡΠΊΡ ΡΠ΅Π³ΡΠ»ΡΡΠΎΡΠ° ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ. ΠΠΎΠΌΠ°Π½Π΄Π° docker run image_name β ΡΡΠΎ Π½Π΅ΡΡΠΎ Π²ΡΠΎΠ΄Π΅ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠ΅Π³ΡΠ»ΡΡΠΎΡΠ° ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ, Β«ΠΏΠΎΠ²ΠΎΡΠΎΡΒ» ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠΎΠ·Π΄Π°ΡΡ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ.
ΠΠΎΡΠΎΠ²Π°Ρ ΠΏΠΈΡΡΠ° β ΡΡΠΎ ΠΈ Π΅ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Docker.
Π Π΅ΡΡΡ ΠΏΠΈΡΡΡ β Π·Π½Π°ΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΠΌ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅.
ΠΠ°ΠΊ ΠΈ ΠΏΡΠΈΠ³ΠΎΡΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΈΡΡΡ, ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° ΠΊ ΡΠ°Π±ΠΎΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² Docker Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, Π½ΠΎ Π² ΡΠΈΠ½Π°Π»Π΅ ΠΈ Π² ΡΠΎΠΌ ΠΈ Π² Π΄ΡΡΠ³ΠΎΠΌ ΡΠ»ΡΡΠ°ΡΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΡΡΠΎ-ΡΠΎ Π²ΠΊΡΡΠ½ΠΎΠ΅.
ΠΡΠΎΠ³ΠΈ
ΠΠ΄Π΅ΡΡ ΠΌΡ, Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΏΡΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅, ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΠΎΡΠ½ΠΎΠ²Ρ Docker. ΠΠ°Π΄Π΅Π΅ΠΌΡΡ, ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΡΠ΅ Π·Π΄Π΅ΡΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΠΏΠΎΠΌΠΎΠ³Π»ΠΈ Π²Π°ΠΌ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Docker, ΠΈ ΠΎΡΡΡΠΈΡΡ ΡΠ΅Π½Π½ΠΎΡΡΡ ΠΌΠ΅ΡΠ°ΡΠΎΡ Π² Π΄Π΅Π»Π΅ ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΡ Π½ΠΎΠ²ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ.
Π£Π²Π°ΠΆΠ°Π΅ΠΌΡΠ΅ ΡΠΈΡΠ°ΡΠ΅Π»ΠΈ! ΠΡΠ° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΡΠ°ΡΡΠΈ ΠΈΠ· ΡΠ΅ΡΠΈΠΈ ΡΡΠ΅Π±Π½ΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ² ΠΏΠΎ Docker. ΠΠΎ ΡΠ»ΠΎΠ²Π°ΠΌ Π°Π²ΡΠΎΡΠ°, Π²ΡΠ΅Π³ΠΎ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΡΡ Π²ΡΠΏΡΡΡΠΈΡΡ 5 ΡΠ°ΠΊΠΈΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ². Π£ΠΆΠ΅ Π³ΠΎΡΠΎΠ²Ρ Π²ΡΠΎΡΠ°Ρ, ΡΡΠ΅ΡΡΡ ΠΈ ΡΠ΅ΡΠ²ΡΡΡΠ°Ρ ΡΠ°ΡΡΠΈ. ΠΠΎΠ΄ΡΠΊΠ°ΠΆΠΈΡΠ΅ Π½Π°ΠΌ, ΡΡΠΎΠΈΡ Π»ΠΈ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ°ΡΡΠΈ ΡΡΠΎΠΉ ΡΠ΅ΡΠΈΠΈ?
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Docker, ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ? ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ
Π Π°Π·Π±Π΅ΡΠ΅ΠΌ ΠΏΠΎ ΠΊΠΎΡΡΠΎΡΠΊΠ°ΠΌ, Π²Π΅Π΄Ρ Docker β ΡΡΠΎ ΠΌΠΎΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΈ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΏΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π½ΠΈΠΌ Π²ΡΡΠ΄ Π»ΠΈ ΡΠΌΠ΅ΡΡΠΈΡΡΡ Π² Π±ΡΠΎΡΡΡΠΊΡ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Docker?
ΠΡΠΎ ΠΠ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΏΡΠΈΠ½ΡΠΈΠΏ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΡΠ°Π²Π½ΠΈΡΡ Ρ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΡΠΌΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌΠΈ. Π’ΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ΄ΡΠΌΠ°ΠΉΡΠ΅, Π²Π΅Π΄Ρ ΠΊΠΎΠ³Π΄Π°-ΡΠΎ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡ Ρ ΠΏΠΎΡ ΠΎΠΆΠΈΠΌΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ:
Π‘ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² ΡΡΠ°Π»ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ·ΠΈΡΡ Π²ΠΌΠ΅ΡΡΠ΅ ΠΊΠΈΡΠΏΠΈΡΠΈ ΠΈ ΡΡΠ΅ΠΊΠ»ΠΎ, Ρ ΠΈΠΌΠΈΠΊΠ°ΡΡ ΠΈ Π΅Π΄Ρ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅. ΠΡΡΠ· ΡΠ°Π·Π½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΏΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ/Π²ΡΠ³ΡΡΠΆΠ°ΡΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ ΡΠ΅ΠΌ ΠΆΠ΅ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΡΠΌ ΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ.
ΠΠΎ Π²Π΅ΡΠ½Π΅ΠΌΡΡ ΠΆΠ΅ ΠΊ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌ. ΠΠΎΠ³Π΄Π° Π²Ρ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΊΠΎΠ΄ Π²ΠΌΠ΅ΡΡΠ΅ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ Π΅Π³ΠΎ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠΌΠΈ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΡΠ΅ΡΠ²Π΅Ρ, Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ Ρ. Π΄. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π² ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° Π²Π°ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅, Π½ΠΎ ΠΎΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π²ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ΅ΡΠ°Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π· ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΠ ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΡ.
Π ΡΠ΅ΠΌ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ?
ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π±ΡΠ»Π° ΠΏΡΠΈΠ·Π²Π°Π½Π° ΠΈΠ·Π±Π°Π²ΠΈΡΡ ΠΎΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Π½ΠΎ Π² Π½Π΅ΠΉ Π΅ΡΡΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ:
ΠΠΎΠΊΠ΅Ρ ΠΆΠ΅ ΠΏΡΠΎΡΡΠΎ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅Ρ ΡΠ΄ΡΠΎ ΠΠ‘ Π½Π° Π²ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ (Docker container), ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠ΅ ΠΊΠ°ΠΊ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ. ΠΡΠΎ Π½Π΅ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½Π°Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½Π°Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°, Π½ΠΎ, Π±Π΅ΡΡΠΏΠΎΡΠ½ΠΎ, ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΠΈ Π²ΠΎΡΡΡΠ΅Π±ΠΎΠ²Π°Π½Π½ΡΡ .
ΠΠ°ΠΊΠΈΠ΅ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΠ΅ ΠΏΠ»ΡΡΡ?
Π Π΅Π³ΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°ΠΌ ΠΎΡΠ½ΠΎΡΡΡΡΡ:
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ
ΠΠΎΠΊΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° Π΅Π³ΠΎ ΡΠΎΠ΄Π½ΠΎΠΉ ΠΠ‘, Linux, Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Windows ΠΈ macOS. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Linux Π² ΡΠΎΠΌ, ΡΡΠΎ Π½Π° macOS ΠΈ Windows ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΡΠ΅ΡΡΡ Π² ΠΊΡΠΎΡΠ΅ΡΠ½ΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Ρ. ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΠΎΠΊΠ΅Ρ Π΄Π»Ρ macOS ΠΈ Windows Π΄ΠΎΡΡΠΈΠ³ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Kitematic ΠΈΠ»ΠΈ Docker Machine, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΠΎΠΊΠ΅Ρ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ , ΠΎΡΠ»ΠΈΡΠ½ΡΡ ΠΎΡ Linux.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
ΠΠ΄Π΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅. ΠΡΠ»ΠΈ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Ρ ΠΠΎΠΊΠ΅ΡΠΎΠΌ Π½Π° ΠΠ‘ Linux, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π΅ΡΠ»ΠΎΠΆΠ½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π²ΠΎΠΉΡΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΡ:
Π’Π΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΡ
1. ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ β ΡΡΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΡΠ΅Ρ ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅. ΠΠ½ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΎΠ±ΡΠ°Π·ΠΎΠ². ΠΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΡΠ΄Π°Π»ΠΈΡΡ ΠΈ ΡΠ½ΠΎΠ²Π° ΡΠΎΠ·Π΄Π°ΡΡ Π·Π° ΠΊΠΎΡΠΎΡΠΊΠΈΠΉ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΠΊ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
2. ΠΠ±ΡΠ°Π· β Π±Π°Π·ΠΎΠ²ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°. Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΎΠ±ΡΠ°Π·Π°, ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π΄Π»Ρ Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ.
3. ΠΠΎΡΡ β ΡΡΠΎ ΠΏΠΎΡΡ TCP/UDP Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠΈ. Π§ΡΠΎΠ±Ρ Π²ΡΠ΅ Π±ΡΠ»ΠΎ ΠΏΡΠΎΡΡΠΎ, ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ ΠΏΠΎΡΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΡΠΊΡΡΡΡ Π²ΠΎ Π²Π½Π΅ΡΠ½Π΅ΠΌ ΠΌΠΈΡΠ΅ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Ρ ΠΊ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌ (Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· ΡΡΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² ΠΈ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ Π΄Π»Ρ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΌΠΈΡΠ°).
4. Π’ΠΎΠΌ β ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ°Ρ ΠΏΠ°ΠΏΠΊΠ°. Π’ΠΎΠΌΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΡΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΠΈ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ , Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°.
5. Π Π΅Π΅ΡΡΡ β ΡΡΠΎ ΡΠ΅ΡΠ²Π΅Ρ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Ρ ΡΠ°Π½ΡΡΡΡ ΠΎΠ±ΡΠ°Π·Ρ. Π‘ΡΠ°Π²Π½ΠΈΠΌ Π΅Π³ΠΎ Ρ GitHub: Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΡΠ°ΡΠΈΡΡ ΠΎΠ±ΡΠ°Π· ΠΈΠ· ΡΠ΅Π΅ΡΡΡΠ°, ΡΡΠΎΠ±Ρ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ Π΅Π³ΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ, ΠΈ ΡΠ°ΠΊ ΠΆΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π½ΠΎΡΠΈΡΡ Π² ΡΠ΅Π΅ΡΡΡ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ ΠΎΠ±ΡΠ°Π·Ρ.
6. Docker Hub β ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ ΠΠΎΠΊΠ΅Ρ Inc. ΠΠ½ Ρ ΡΠ°Π½ΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠ². Π Π΅ΡΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ Β«ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΡ Β» ΠΎΠ±ΡΠ°Π·ΠΎΠ², ΡΠ΄Π΅Π»Π°Π½Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΠΠΎΠΊΠ΅Ρ ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ Π² ΡΠΎΡΡΡΠ΄Π½ΠΈΡΠ΅ΡΡΠ²Π΅ Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ ΠΠ. ΠΠ»Ρ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ² ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ ΠΈΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ. ΠΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΡΠΊΡΡΡΠ° Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠΎΡΡΡΠΏΠ½Ρ ΠΊΠ°ΠΊ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠ΅, ΡΠ°ΠΊ ΠΈ ΠΏΠ»Π°ΡΠ½ΡΠ΅ Π°ΠΊΠΊΠ°ΡΠ½ΡΡ.
ΠΡΠΈΠΌΠ΅Ρ 1: Hello World
ΠΡΠΈΡΠ»ΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°ΠΏΡΡΡΠΈΡΡ Π½Π°Ρ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ:
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΡ Π²Π½ΡΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°:
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΡΠ°Π±ΠΎΡΠ°Π» ΠΏΠΎΡΠ»Π΅ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΡΠ΅Π°Π½ΡΠ°, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΅Π³ΠΎ Β«Π΄Π΅ΠΌΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡΒ»:
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Ρ Π½Π°Ρ Π΅ΡΡΡ Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ:
ps ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π°ΠΌ, ΡΡΠΎ Ρ Π½Π°Ρ Π΅ΡΡΡ Π΄Π²Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°:
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ ΠΆΡΡΠ½Π°Π»Ρ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ-Π΄Π΅ΠΌΠΎΠ½ ΠΏΡΡΠΌΠΎ ΡΠ΅ΠΉΡΠ°Ρ:
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ-Π΄Π΅ΠΌΠΎΠ½:
ΠΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ Π΅Π³ΠΎ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΡ:
ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½. ΠΠ°Π²Π°ΠΉΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΠΌ Π΅Π³ΠΎ ΡΠ½ΠΎΠ²Π°:
Π£Π±Π΅Π΄ΠΈΠΌΡΡ, ΡΡΠΎ ΠΎΠ½ Π·Π°ΠΏΡΡΠ΅Π½:
Π’Π΅ΠΏΠ΅ΡΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ Π΅Π³ΠΎ ΠΈ ΡΠ΄Π°Π»ΠΈΠΌ Π²ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Π²ΡΡΡΠ½ΡΡ:
Π§ΡΠΎΠ±Ρ ΡΠ΄Π°Π»ΠΈΡΡ Π²ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΡΠΈΠΌΠ΅Ρ 2: Nginx
ΠΠ°ΡΠΈΠ½Π°Ρ Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°, Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΡΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ GitHub. ΠΠ°ΠΊ Π²Π°ΡΠΈΠ°Π½Ρ, Π·Π°Π³ΡΡΠ·ΠΈΡΠ΅ ΠΎΠ±ΡΠ°Π·ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅.
ΠΡΠΈΡΠ»ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ Π±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, ΡΠ°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ Nginx.
ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π½Π° examples/nginx:
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΡΠΎΡ URL-Π°Π΄ΡΠ΅Ρ Π² ΡΠ²ΠΎΠ΅ΠΌ Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΠ΅.
ΠΡΠ΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ /example/nginx/index.html (ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ /usr/share/nginx/html Π²Π½ΡΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°) ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΡΡΠ°Π½ΠΈΡΡ.
ΠΠΎΠ»ΡΡΠΈΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅ test-nginx:
ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΠΠΎΠΊΠ΅Ρ. ΠΠ½Π° Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π²Π΅ΡΡΠΈΡ ΡΠ΄ΡΠ°, ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² ΠΈ ΠΎΠ±ΡΠ°Π·ΠΎΠ², ΠΎΡΠΊΡΡΡΡΠ΅ ΠΏΠΎΡΡΡ ΠΈ Ρ. Π΄.
ΠΡΠΈΠΌΠ΅Ρ 3: Π·Π°ΠΏΠΈΡΡ Dockerfile
Π§ΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ°Π·, ΡΠΏΠ΅ΡΠ²Π° Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Dockerfile: ΡΡΠΎ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ. ΠΡΠ°ΡΠΊΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅:
ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π΄Π΅ΡΡ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΎΠ±ΡΠ°Π·, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ»ΡΡΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΡΠ° ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡ Π΅Π³ΠΎ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅. ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ URL-Π°Π΄ΡΠ΅Ρ ΡΠ΅ΡΠ΅Π· ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ SITE_URL. Π Π΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠΈΠΉ ΡΠ°ΠΉΠ» Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ ΠΊΠ°ΠΊ ΡΠΎΠΌ:
Dockerfile Π³ΠΎΡΠΎΠ², ΠΏΡΠΈΡΠ»ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ°Π·.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π·Π°
ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΠΊ examples/curl ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
Π’Π΅ΠΏΠ΅ΡΡ Ρ Π½Π°Ρ Π΅ΡΡΡ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ°Π·, ΠΈ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π΅Π³ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π² ΡΠΏΠΈΡΠΊΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ :
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΈΠ· ΠΎΠ±ΡΠ°Π·Π°. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ:
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ, ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½ΡΠ΅ Π² ΡΠ°ΠΉΠ»Π΅:
ΠΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ Ρ facebook.com:
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ, ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½ΡΠ΅ Π² ΡΠ°ΠΉΠ»Π΅:
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ²
Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌΠΈ
ΠΡΠΈΠΌΠ΅Ρ 4: Python + Redis
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Python ΠΈ Redis.
ΠΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ examples/compose ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
Π’Π΅ΠΊΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΡ ΡΡΠ΅ΡΡΠΈΠΊ ΠΏΡΠΎΡΠΌΠΎΡΡΠΎΠ² Π² Redis. ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΡΡΠ»ΠΊΡ ΠΈ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ Π² ΡΡΠΎΠΌ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ docker-compose β ΡΡΠΎ ΡΠ΅ΠΌΠ° Π΄Π»Ρ ΡΠ΅Π»ΠΎΠ³ΠΎ ΡΡΠ΅Π±Π½ΠΈΠΊΠ°. Π§ΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΈΠ³ΡΠ°ΡΡΡΡ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΎΠ±ΡΠ°Π·Π°ΠΌΠΈ ΠΈΠ· Docker Hub, Π° Π΅ΡΠ»ΠΈ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ β ΡΠ»Π΅Π΄ΡΠΉΡΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡΠΌ, ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΠΌ Π²ΡΡΠ΅. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ docker-compose β Π²ΡΠ΅Π³Π΄Π° Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ²Π½ΡΠ΅ ΠΈΠΌΠ΅Π½Π° Π²Π°ΡΠΈΠΌ ΡΠΎΠΌΠ°ΠΌ. ΠΡΠΎ ΠΏΡΠΎΡΡΠΎΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΠΈΠ·Π±Π°Π²ΠΈΡ Π²Π°Ρ ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ.
Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ redis_data Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π²Π½ΡΡΡΠΈ ΡΠ°ΠΉΠ»Π° docker-compose.yml.
Π‘ΠΌΠΎΡΡΠΈΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠΎΠΌΠ°:
ΠΠ΅Π· ΡΠ²Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΡΠΎΠΌΠ° Π±ΡΠ΄Π΅Ρ UUID. Π Π²ΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ:
Π Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠΎΠΊΠ΅Ρ ΡΡΠ°Π» ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π²Π°ΠΆΠ½Π΅ΠΉΡΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°. ΠΠ°, ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, Π½ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠΈΠ΄ΡΠΈΠ²ΠΎΡΡΠΈ β ΠΈ ΠΌΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΡΡΡΠ΅Π½!