ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π΄ΠΎΠΊΠ΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π΄Π»Ρ ΡΠ°ΠΉΠ½ΠΈΠΊΠΎΠ²
ΠΠΎΠ½ΠΈΠΌΠ°Ρ 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 ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΠ·Π°ΡΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ»ΠΈΡΠ½ΠΎΠΉ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²ΠΎΠΉ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΉ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ Π² Π½Π΅ΠΉ ΠΏΡΠΎΡΠ΅ΠΊΠ°ΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ ΡΠ΅ΡΡΡΡΡ ΠΈ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ.
ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ 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, Π½ΠΎ ΠΈ Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½ ΡΡΠΎΠΈΡ Π»ΠΈ Π΅ΠΌΡ ΡΡΠΎ Π·Π½Π°ΡΡ.
Π― ΡΠΎΠ·Π½Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠΏΡΡΠΊΠ°Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ, Π° ΠΊΠΎΠ΅ Π³Π΄Π΅ Π΄ΠΎΠΏΡΡΠΊΠ°Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ docker β ΡΠΎ, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ, Π²Ρ Π»Π΅Π³ΠΊΠΎ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΡΡ ΠΈ ΡΠΎΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² Π΄ΡΡΠ³ΠΈΡ ΡΡΠ°ΡΡΡΡ .
ΠΠ°ΡΠ½Ρ Ρ Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠΈΠΏΠΈΡΠ½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ.
ΠΡΠΎΠ±Π»Π΅ΠΌΡ
ΠΠ΅ΡΠ²Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° β ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡ.
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΠΈ ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΡ Π³ΠΎΡΠΎΠ²ΠΈΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π½ΡΡ ΡΠ°ΠΉΠ»ΠΈΠΊΠΎΠ², ΡΠΊΡΠΈΠΏΡΠΎΠ² ΠΈ ΠΏΠΈΡΠΈΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅. Π ΠΏΠΎΡΠΎΠΌ ΡΡΠ°ΡΠΈΡΠ΅ ΡΠΉΠΌΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π²ΡΠΎΠ΄Π΅: Β«Ρ ΠΌΠ΅Π½Ρ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΒ», Β«Π²Π°Ρ ΡΠΊΡΠΈΠΏΡ ΡΠΏΠ°Π» Π½Π° ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅ β ΡΡΠΎ ΡΠ΅ΠΏΠ΅ΡΡ Π΄Π΅Π»Π°ΡΡΒ», Β«Ρ ΠΏΠ΅ΡΠ΅ΠΏΡΡΠ°Π» ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΠ°Π³ΠΎΠ² Π² ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ Π½Π΅ ΠΌΠΎΠ³Ρ ΠΈΠ΄ΡΠΈ Π΄Π°Π»ΡΡΠ΅Β» ΠΈ Ρ. ΠΏ.
ΠΡΡ ΡΡΡΠ³ΡΠ±Π»ΡΠ΅ΡΡΡ Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡ ΡΠΈΡΠ°ΠΆΠΈΡΡΠ΅ΠΌΡΠΉ ΠΈ Π²ΠΌΠ΅ΡΡΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Ρ Π²Π°Ρ ΡΠΎΡΠ½ΠΈ ΠΈΠ»ΠΈ ΡΡΡΡΡΠΈ ΠΏΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Π΅ΠΉ. Π ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π΅ΡΠ΅ ΡΠ»ΠΎΠΆΠ½Π΅Π΅, Π΅ΡΠ»ΠΈ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡΡ ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΠΉ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°.
ΠΡΠΎΡΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° β ΡΠΈΡΠ°ΠΆΠΈΡΡΠ΅ΠΌΠΎΡΡΡ. ΠΡΡΡΡ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π½ΡΡΡ 5 (ΠΈΠ»ΠΈ 50) ΠΏΠΎΡΡΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ². ΠΠ΅Π»Π°ΡΡ ΡΡΠΎ Π²ΡΡΡΠ½ΡΡ Π΄ΠΎΠ»Π³ΠΎ, Π΄ΠΎΡΠΎΠ³ΠΎ ΠΈ ΠΏΠΎΠ΄Π²Π΅ΡΠΆΠ΅Π½ΠΎ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌ.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΡΡΠ΅ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° β ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΡΡΡ. ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΎΡΠ΄Π΅Π», ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π΅Π»Π°Π΅Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠ½ΡΠ΅ ΠΈΠ³ΡΡ. ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ ΠΈΡ Ρ Π²Π°Ρ ΡΠΆΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ. Π Π²ΡΠ΅ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΡΡΠΊ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ β java-tomcat-nginx-postgre). ΠΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ Π½ΠΎΠ²ΡΡ ΠΈΠ³ΡΡ Π²Ρ Π²ΡΠ½ΡΠΆΠ΄Π΅Π½Ρ Π·Π°Π½ΠΎΠ²ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡΠ°Π²Π»ΠΈΠ²Π°ΡΡ Π½Π° Π½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΠΏΠΎΡΡΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ. ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΡΠΎ ΡΠ°ΠΊ Π²Π·ΡΡΡ ΠΈ ΡΠΊΠ°Π·Π°ΡΡ β Β«Ρ ΠΎΡΡ ΡΠ΅ΡΠ²Π΅Ρ, ΠΊΠ°ΠΊ Π² ΠΈΠ³ΡΠ΅ ΡΡΡΠ°Π½Π½ΠΈΠΊΠΈ Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Ρ Π΄ΡΡΠ³ΠΈΠΌ Π²Π΅Π± Π°ΡΡ ΠΈΠ²ΠΎΠΌΒ»
ΠΠ±ΡΡΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ
ΠΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ΅ΡΠ°ΡΡΡΡ ΡΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΎΡΠ½ΡΠΉ ΡΠΊΡΠΈΠΏΡ
ΠΠ΅ΡΠ²ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Ρ ΡΠΆΠ΅ ΡΠΏΠΎΠΌΡΠ½ΡΠ» β Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠΊΡΠΈΠΏΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡ Π²ΡΡ, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π΅Π³ΠΎ Π½Π° Π²ΡΠ΅Ρ Π½ΡΠΆΠ½ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ . ( Π‘ΠΊΡΠΈΠΏΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΊΠ°ΠΊ ΠΏΡΠΎΡΡΡΠΌ sh ΡΠ°ΠΉΠ»ΠΎΠΌ, ΡΠ°ΠΊ ΠΈ ΡΠ΅ΠΌ-ΡΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠΌ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΌ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ²).
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° β Ρ ΡΡΠΏΠΊΠΎΡΡΡ ΠΈ Π½Π΅ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΡ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌ. ΠΠ°ΠΊ Π±Ρ Ρ ΠΎΡΠΎΡΠΎ Π½Π΅ Π±ΡΠ» Π½Π°ΠΏΠΈΡΠ°Π½ ΡΠΊΡΠΈΠΏΡ, ΡΠ°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΌΠ°ΡΠΈΠ½Π΅ ΠΎΠ½ ΡΠΏΠ°Π΄ΡΡ. Π ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΏΠ°Π΄Π΅Π½ΠΈΡ ΠΌΠ°ΡΠΈΠ½Π° ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ Β«ΠΈΡΠΏΠΎΡΡΠ΅Π½Π½ΠΎΠΉΒ» β ΠΏΡΠΎΡΡΠΎ ΡΠ°ΠΊ Β«ΠΎΡΠΊΠ°ΡΠΈΡΡΒ» ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΊΡΠΈΠΏΡ ΡΡΠΏΠ΅Π» Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ, Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ.
ΠΠ±Π»Π°ΡΠ½ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ
ΠΡΠΎΡΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±Π»Π°ΡΠ½ΡΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ². ΠΡ Π²ΡΡΡΠ½ΡΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΠ΅ Π½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ Π²ΡΡ, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ. ΠΠ°ΡΠ΅ΠΌ Π΄Π΅Π»Π°Π΅ΡΠ΅ Π΅Π³ΠΎ image. Π Π΄Π°Π»Π΅Π΅ ΠΊΠ»ΠΎΠ½ΠΈΡΡΠ΅ΡΠ΅ Π΅Π³ΠΎ ΡΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π°ΠΌ Π½Π°Π΄ΠΎ.
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠ° Π·Π΄Π΅ΡΡ Π΄Π²Π°. ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , vendor-lock-in. ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠ²ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π²Π½Π΅ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±Π»Π°ΠΊΠ°, ΡΡΠΎ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΏΠΎΡΠ΅ΡΡΠΌ Π½Π΅ΡΠΎΠ³Π»Π°ΡΠ½ΡΡ Ρ ΡΡΠΈΠΌ Π²ΡΠ±ΠΎΡΠΎΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ². ΠΠΎ-Π²ΡΠΎΡΡΡ , ΠΎΠ±Π»Π°ΠΊΠ° ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ. ΠΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ (ΠΈ Π΄Π°ΠΆΠ΅ Β«bare-metalΒ») ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ ΠΎΠ±Π»Π°ΠΊΠ°ΠΌΠΈ Π½Π° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ Π΄Π΅Π½Ρ ΡΠΈΠ»ΡΠ½ΠΎ ΡΡΡΡΠΏΠ°ΡΡ ΠΏΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ dedicated ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌ.
ΠΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΡΠΈΠ½Ρ
Π’ΡΠ΅ΡΠΈΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½. ΠΠ΄Π΅ΡΡ ΡΠΎΠΆΠ΅ Π΅ΡΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ:
Π Π°Π·ΠΌΠ΅Ρ β Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΊΠ°ΡΠ°ΡΡ ΠΎΠ±ΡΠ°Π· Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΈΠΌ. ΠΡΠΈ ΡΡΠΎΠΌ, Π»ΡΠ±ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π²Π½ΡΡΡΠΈ ΠΎΠ±ΡΠ°Π·Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΠΊΠ°ΡΠ°ΡΡ Π²Π΅ΡΡ ΠΎΠ±ΡΠ°Π· Π·Π°Π½ΠΎΠ²ΠΎ.
Π‘Π»ΠΎΠΆΠ½ΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΡΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ² β Π½Π΅ Π²ΡΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΡΠΈΠ½Ρ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ΠΈΠ»ΠΈ CPU. Π’Π΅ ΡΡΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ, ΡΡΠ΅Π±ΡΡΡ ΡΠΎΠ½ΠΊΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ.
ΠΠΎΠ΄Ρ ΠΎΠ΄ Π΄ΠΎΠΊΠ΅ΡΠ° β ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΠ·Π°ΡΠΈΡ
Π Π²ΠΎΡ ΡΡΡ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ docker, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ docker
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π·Π°
Π‘Π½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ docker image (ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ°Π·). ΠΠ½ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠΊΡΠΈΠΏΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΈΡΠ΅ΡΠ΅.
ΠΠ±ΡΠ°Π·Ρ Π½Π°ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΈ, ΠΎΠ±ΡΡΠ½ΠΎ, Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π·Π° ΠΌΡ Π±Π΅ΡΡΠΌ Π³ΠΎΡΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ°Π· ΠΈ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΠΌΡΡ ΠΎΡ Π½Π΅Π³ΠΎ.
Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΌΡ Π±Π΅ΡΠ΅ΠΌ ΠΎΠ±ΡΠ°Π· Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΡΠ° ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ linux. Π‘ΠΊΡΠΈΠΏΡ ΡΠΎΠ³Π΄Π° Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ-ΡΠΎ ΡΠ°ΠΊ:
ΠΡΠΎΠΌΠ΅ ΡΡΠΎΠ³ΠΎ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Π² Π½Π°Ρ ΠΎΠ±ΡΠ°Π· Π»ΡΠ±ΡΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ COPY.
ΠΠΎΠΊΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° USER roman Π³ΠΎΠ²ΠΎΡΠΈΡ Π΄ΠΎΠΊΠ΅ΡΡ ΡΡΠΎ Π²ΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΈΠ· ΠΏΠΎΠ΄ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ roman. Π Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° ENTRYPOINT [β/opt/tomcat/catalina.shβ] Π·Π°Π΄Π°Π΅Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΠΏΡΠΈ ΡΡΠ°ΡΡΠ΅.
Π― Π½Π΅ Π±ΡΠ΄Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΡΡ Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ β Π² ΡΡΠΎΠΌ Π½Π΅Ρ ΡΠΌΡΡΠ»Π°. ΠΠ΄Π΅ΡΡ Π³Π»Π°Π²Π½ΠΎΠ΅ β ΠΏΡΠΈΠ½ΡΠΈΠΏ: Π²Ρ ΡΠΎΠ·Π΄Π°ΡΡΠ΅ Π²ΠΎΡ ΡΠ°ΠΊΠΎΠΉ ΡΠΊΡΠΈΠΏΡ, Π½Π°Π·ΡΠ²Π°Π΅ΡΠ΅ Π΅Π³ΠΎ Dockerfile ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ docker build, docker Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠΊΡΠΈΠΏΡ ΠΈ ΡΠΎΠ·Π΄Π°Π΅Ρ image.
ΠΡΠ»ΠΈ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΠΎΡΠΈΠ±ΠΊΠΈ, Π΄ΠΎΠΊΠ΅Ρ ΠΎ Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΠΈ Π²Ρ ΠΈΡ ΠΈΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΠ΅. Π’ΠΎ Π΅ΡΡΡ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΊΡΠΈΠΏΡΠ° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π½Π° ΡΡΠ°ΠΏΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ image. ΠΠ° ΡΡΠ°ΠΏΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠΊΡΠΈΠΏΡ ΡΠΆΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°
ΠΠΎΠ³Π΄Π° Ρ Π²Π°Ρ ΡΠΆΠ΅ Π΅ΡΡΡ docker image Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈΠ· Π½Π΅Π³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π½Π° Π»ΡΠ±ΠΎΠΌ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅, Π³Π΄Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π΄ΠΎΠΊΠ΅Ρ. ΠΡΠ»ΠΈ image β ΡΡΠΎ ΡΠΈΡΠ°ΠΆΠΈΡΡΠ΅ΠΌΡΠΉ ΠΎΠ±ΡΠ°Π· Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ Β«ΠΌΠ°ΡΠΈΠ½ΡΒ», ΡΠΎ container ΡΡΠΎ ΡΠΆΠ΅ ΡΠ°ΠΌΠ° Β«ΠΌΠ°ΡΠΈΠ½Π°Β», ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΈ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ.
ΠΠ°ΠΆΠ½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ β ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΠΈΠ· image, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΎΠ²Π°ΡΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π΄ΠΎΠΊΠ΅ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΠΈΠ· image. Π’Π°ΠΊ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π½ΡΠ΅ ΠΌΠ°ΡΠΈΠ½Ρ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π·Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΎΠ±ΡΠ°Π·Ρ web-ΡΠ΅ΡΠ²Π΅ΡΠ° Π΅Π³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΈΠΌΡ.
Π₯ΠΎΡΠΎΡΠ΅ΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΎΠΉ Π² Π΄ΠΎΠΊΠ΅ΡΠ΅ ΡΡΠΈΡΠ°Π΅ΡΡΡ Β«ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ°Β» Π² ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΡΠΎΠ²Π½ΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅Π³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°. ΠΠ°ΠΊ Ρ ΡΠΆΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π», ΡΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΈ ΡΠ΅ΡΡΠ½ΠΎ ΡΠ΅Π³ΡΠ»ΠΈΡΡΠ΅ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΉ ΡΠ°ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ. ΠΠΎΡΡΠΎΠΌΡ, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½, ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Π΄ΠΎΠΊΠ΅ΡΠ° Π½Π΅ ΡΡΠ΅Π±ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΡΡ ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°ΠΌΠΈ. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΡΡΡΠΎΠ² ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΏΡΠΎΡΡΡΠΌ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌ.
Union filesystem
ΠΠΊ β ΠΏΠ°ΠΌΡΡΡ ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ. Π ΠΊΠ°ΠΊ Π½Π°ΡΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ? ΠΠ΅Π΄Ρ Π΅ΡΠ»ΠΈ Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π΄ΠΎΠΊΠ΅ΡΠ° ΡΠ²ΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½Π°Ρ ΠΊΠΎΠΏΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠΎ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΡ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΡΠΎ ΠΈ Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΌΠ°ΡΠΈΠ½Π°ΠΌΠΈ β ΡΡΠΆΠ΅Π»ΠΎΠ²Π΅ΡΠ½ΡΠ΅ ΠΎΠ±ΡΠ°Π·Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎΠΆΠ΅.
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π² Π΄ΠΎΠΊΠ΅ΡΠ΅ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ. ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ 100500 ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ², ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈ ΡΠΎΠΌ ΠΆΠ΅ ΠΎΠ±ΡΠ°Π·Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠΎ ΡΠ°ΠΉΠ»Ρ ΡΡΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Π±ΡΠ΄ΡΡ ΡΠΊΠ°ΡΠ°Π½Ρ Π΄ΠΎΠΊΠ΅ΡΠΎΠΌ ΡΠΎΠ²Π½ΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·. ΠΡΠΎ Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ Π·Π° ΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΎΠΊΠ΅ΡΠΎΠΌ union file system.
Union file system ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΠ»ΠΎΡΠ² (layers). Π‘Π»ΠΎΠΈ ΠΊΠ°ΠΊ Π±Ρ Π½Π°Π»ΠΎΠΆΠ΅Π½Ρ Π΄ΡΡΠ³ Π½Π° Π΄ΡΡΠ³Π°. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»ΠΎΠΈ Π·Π°ΡΠΈΡΠ΅Π½Ρ ΠΎΡ Π·Π°ΠΏΠΈΡΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠ΅ Π½Π°ΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΎΠ±ΡΠΈΠ΅ Π·Π°ΡΠΈΡΠ΅Π½Π½ΡΠ΅ ΠΎΡ Π·Π°ΠΏΠΈΡΠΈ ΡΠ»ΠΎΠΈ, Π² ΠΊΠΎΡΠΎΡΡΡ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΠ»Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ»ΠΎΠΉ. ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, Π΄ΠΎΠΊΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, Π½ΠΎ ΠΈ Π΄Π»Ρ Π»ΡΠ±ΡΡ ΠΎΠ±ΡΠΈΡ ΡΠ°ΡΡΠ΅ΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π½Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΎΠ±ΡΠΈΡ Β«ΠΏΡΠ΅Π΄ΠΊΠΎΠ²Β» ΠΈΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ².
Container registry
ΠΠΎΠ»ΡΡΠ°Π΅ΡΡΡ, ΡΡΠΎ docker image ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΠ»ΠΎΡΠ². Π Ρ ΠΎΡΠΎΡΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΡΠΌΠ΅ΡΡ ΡΠΊΠ°ΡΠΈΠ²Π°ΡΡ Π½Π° Π½Π°Ρ ΡΠ΅ΡΠ²Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ ΡΠ»ΠΎΠΈ, ΠΊΠΎΡΠΎΡΡΡ Π½Π° Π½ΡΠΌ ΠΏΠΎΠΊΠ° Π½Π΅Ρ. ΠΠ½Π°ΡΠ΅ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ 100 ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ², ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΡ Π½Π° Ubuntu ΠΌΡ ΡΠΊΠ°ΡΠ°Π΅ΠΌ Ubuntu Π²Π½ΡΡΡΠΈ ΠΈΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ² 100 ΡΠ°Π·. ΠΠ°ΡΠ΅ΠΌ?
Π₯ΠΎΡΠΎΡΠ°Ρ Π½ΠΎΠ²ΠΎΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π΄ΠΎΠΊΠ΅Ρ ΡΠ΅ΡΠ°Π΅Ρ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΠΎΠΊΠ΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ docker registry. Docker registry ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈ Π³ΠΎΡΠΎΠ²ΡΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ². Π‘ΠΎΠ±ΡΠ°Π² Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ°Π· (ΠΈΠ»ΠΈ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡ ΠΎΠ±ΡΠ°Π·Π°) Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΊΠ°ΡΠ°ΡΡ Π΅Π³ΠΎ Π² docker registry. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΏΠΎΡΠΎΠΌ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°ΡΠ°ΡΡ ΠΎΡΡΡΠ΄Π° Π½Π° Π»ΡΠ±ΠΎΠΉ ΡΠ΅ΡΠ²Π΅Ρ. ΠΠ»Π°Π²Π½Π°Ρ ΡΠΈΡΠΊΠ° Π·Π΄Π΅ΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ ΠΊΠ°ΡΠ°ΡΡΡΡ Π±ΡΠ΄ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ ΡΠ»ΠΎΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½Ρ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠΎΠ·Π΄Π°Π»ΠΈ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡ ΠΎΠ±ΡΠ°Π·Π°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΠΎΠΌΠ΅Π½ΡΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠΎ Π² registry Π±ΡΠ΄ΡΡ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ»ΠΎΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ ΡΡΠΈ ΡΠ°ΠΉΠ»Ρ.
ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ ΡΠ΅ΡΠ²Π΅Ρ ΠΊΠ°ΡΠ°Π΅Ρ ΠΈΠ· registry ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΎΠ±ΡΠ°Π·, ΡΠΊΠ°ΡΠ°Π½Ρ Π±ΡΠ΄ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ»ΠΎΠΈ, ΠΎΡΡΡΡΡΡΠ²ΡΡΡΠΈΠ΅ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅.
Docker registry ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΈ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ ΠΈ ΠΊΠ°ΠΊ open source ΠΏΡΠΎΠ΅ΠΊΡ, Π΄ΠΎΡΡΡΠΏΠ½ΡΠΉ Π΄Π»Ρ ΡΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΡ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΈΠ½ΡΡΠ°ΡΡΡΠΊΡΡΡΠ΅.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ²
Π‘ΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ, ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ, ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΠΈΡ ΡΡΠ°ΡΡΡ ΠΈ Ρ Π΄. ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΄ΠΎΠΊΠ΅ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠΏΡΠΎΡΠΈΡΡ Π΄ΠΎΠΊΠ΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΅ΡΡΠ°ΡΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, Π΅ΡΠ»ΠΈ ΡΠΎΡ ΡΠΏΠ°Π΄ΡΡ.
ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌΠΈ
ΠΡΠ»ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ, ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΈΠΌΠΈ Π²ΡΡΡΠ½ΡΡ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΡΠΈΡΠ½ΠΎ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π΅ΡΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ docker compose. ΠΠ½Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΏΠΎΠ²Π΅ΡΡ Π΄ΠΎΠΊΠ΅ΡΠ° ΠΈ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠΏΠΈΡΠ°Π½Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ, ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΈ ΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·ΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ A ΠΈΠΌΠ΅Π΅Ρ ΠΏΡΠ°Π²ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ Ρ ΠΏΠΎΡΡΠΎΠΌ 5432 ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° B)
ΠΡΠ²ΠΎΠ΄Ρ
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π΄ΠΎΠΊΠ΅Ρ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ Π²ΡΡΠ΅ Π·Π°Π΄Π°Ρ: