ΠΠ°ΠΊ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅, ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ Docker, Π° Π½Π΅ ΠΎΡ VM? Π’ΡΡΠ±Π²Π° Π΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠΎΡΠ½ΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΠΈΠ·ΠΎΠ»ΠΈΡΠ°ΡΠ΅. ΠΠΊΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΠΈΠ·ΠΎΠ»ΠΈΡΠ°ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ° Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠ°Π½ΠΈ ΡΠ΅ΡΡΡΡΠΈ ΠΈ Π²ΠΈΡΡΡΠ°Π»Π΅Π½ Ρ Π°ΡΠ΄ΡΠ΅Ρ, ΡΠΎΠ³Π°Π²Π° ΠΈΠ·Π±ΠΎΡΡΡ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΠ°Π΄Π½Π΅ Π²ΡΡΡ Ρ VM. ΠΠΊΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·ΠΎΠ»ΠΈΡΠ°ΡΠ΅ ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΊΠ°ΡΠΎ ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ, ΡΠ΅ Π²ΠΈ ΡΡΡΠ±Π²Π° Docker.
Π ΡΠ°ΠΊΠ°, ΠΊΠ°ΠΊΠ²Π° Π΅ ΡΠ°Π·Π»ΠΈΠΊΠ°ΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ Π½Π° Docker ΠΈ Π²ΠΈΡΡΡΠ°Π»Π½ΠΈΡΠ΅ ΠΌΠ°ΡΠΈΠ½ΠΈ?
ΠΠΈΡΡΡΠ°Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π° (VM) Π΅ Π²ΠΈΡΡΡΠ°Π»Π΅Π½ ΠΊΠΎΠΌΠΏΡΡΡΡ Ρ Π²ΡΠΈΡΠΊΠΈ Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΈ Π²ΠΈΡΡΡΠ°Π»Π΅Π½ ΡΠ²ΡΡΠ΄ Π΄ΠΈΡΠΊ, Π½Π° ΠΊΠΎΠΉΡΠΎ Π΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π° Π½ΠΎΠ²Π° Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π°Π΅Π΄Π½ΠΎ Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈ Π·Π° Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΈ Π΄ΡΡΠ³ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ. Π’ΠΎΠ΅ΡΡ, ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΡ Π½Π° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ Ρ
Π°ΡΠ΄ΡΠ΅Ρ, ΠΊΠΎΠΉΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠΈ Π½Π° Π΅Π΄ΠΈΠ½ ΠΊΠΎΠΌΠΏΡΡΡΡ.
ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π·Π°Π΅ΠΌΠ° Π΄ΠΈΡΠΊΠΎΠ²ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΏΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π½Π°ΡΠΈΠ½ΠΈ:
- ΡΠΈΠΊΡΠΈΡΠ°Π½ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π½Π° ΡΠ²ΡΡΠ΄ΠΈΡ Π΄ΠΈΡΠΊ, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΏΠΎ-Π±ΡΡΠ· Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π²ΠΈΡΡΡΠ°Π»Π½ΠΈΡ ΡΠ²ΡΡΠ΄ Π΄ΠΈΡΠΊ ΠΈ ΠΈΠ·Π±ΡΠ³Π²Π° ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ° Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅;
- Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°. ΠΠΎΠ³Π°ΡΠΎ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΡΠ΅ Π±ΡΠ΄Π΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° Π·Π° ΡΡΡ , Π΄ΠΎΠΊΠ°ΡΠΎ Π΄ΠΎΡΡΠΈΠ³Π½Π΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅Ρ, ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π·Π° Π½Π΅Ρ.
ΠΠΎΠ»ΠΊΠΎΡΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ ΡΠ° Π½Π° ΡΡΡΠ²ΡΡΠ°, ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΌΡΡΡΠΎ Π·Π°Π΅ΠΌΠ°Ρ ΠΈ ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΡΠ΅Π΄Π°ΡΠ°, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° Π·Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π²ΠΈ.
Π΄ΠΎΠΊΠ΅Ρ Π΅ ΡΠΎΡΡΡΠ΅Ρ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ. ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ ΠΈ Π²ΠΈΡΡΡΠ°Π»Π½ΠΈΡΠ΅ ΠΌΠ°ΡΠΈΠ½ΠΈ ΠΈΠΌΠ°Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π°, Π½ΠΎ ΡΠ°Π±ΠΎΡΡΡ ΠΏΠΎ ΡΠ°Π·Π»ΠΈΡΠ΅Π½ Π½Π°ΡΠΈΠ½. ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ Π·Π°Π΅ΠΌΠ°Ρ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΌΡΡΡΠΎ, Ρ.ΠΊ ΠΏΡΠ΅ΠΊΠΎΠΌΠ΅ΡΠ½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½ΠΈ ΡΠ΅ΡΡΡΡΠΈ Π½Π° Ρ ΠΎΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΎΡ VM, Π·Π°ΡΠΎΡΠΎ Π·Π° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΡ VM, ΠΎΡΠΈΠ³ΡΡΡΠ²Π° Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° Π½ΠΈΠ²ΠΎ ΠΠ‘, Π° Π½Π΅ Ρ Π°ΡΠ΄ΡΠ΅Ρ. Π’ΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡΠΏΠ΅ΡΠ°ΡΡΠΊ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°, ΠΏΠΎ-Π±ΡΡΠ·ΠΎ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ ΠΈ ΠΏΠΎ-Π»Π΅ΡΠ½ΠΎ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅.
ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡΡ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΠΏΠΎ-Π΅ΡΠ΅ΠΊΡΠΈΠ²Π΅Π½ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΡΠΌ Π·Π° ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΠ΅Π· ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠ½Π΅ Π½Π° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΈΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ ΠΊΡΠΌ Ρ
ΠΎΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°. Π’Π°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ Π΄Π° ΡΠΏΠΎΠ΄Π΅Π»ΡΡ ΡΠ΄ΡΠΎΡΠΎ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°, ΠΊΡΠ΄Π΅ΡΠΎ Π²ΡΠ΅ΠΊΠΈ ΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ ΠΊΠ°ΡΠΎ ΠΎΡΠ΄Π΅Π»Π΅Π½ ΠΏΡΠΎΡΠ΅Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΠΠ‘, ΠΊΠΎΡΡΠΎ ΠΈΠΌΠ° ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΎΠ±Π»Π°ΡΡΠΈ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° (ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΎ Π²ΠΈΡΡΡΠ°Π»Π½ΠΎ Π°Π΄ΡΠ΅ΡΠ½ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ). Π’ΡΠΉ ΠΊΠ°ΡΠΎ Π²ΠΈΡΡΡΠ°Π»Π½ΠΎΡΠΎ Π°Π΄ΡΠ΅ΡΠ½ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π½Π° Π²ΡΠ΅ΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΎ, Π΄Π°Π½Π½ΠΈΡΠ΅, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈ ΠΊΡΠΌ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°, Π½Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΡΠΎΠΌΠ΅Π½ΡΠ½ΠΈ.
Π ΠΎΠ΄Π½Π°ΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° Docker Π΅ Linux (Docker ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈ Π½Π° Windows ΠΈ MacOS), ΡΡ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΡΠΈ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π°, ΠΊΠΎΠΈΡΠΎ ΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π΄Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ° ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΎ ΡΠ΄ΡΠΎ. Π‘ΡΠ°ΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Docker ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π² Windows ΡΠ΅ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠΈ Π²ΡΠ² Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π° Π½Π° Linux. ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ ΡΠΏΠΎΠ΄Π΅Π»ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π½Π° Ρ
ΠΎΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΈ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΡΡΡ
Π΅ Linux.
ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ - ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ?
ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π΅ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΡ Π½Π° Π½ΠΈΠ²ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΡΠΎ ΡΡΡΠ΅ΡΠ°Π²Π° ΠΊΠΎΠ΄ ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ. ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ Π²ΠΈΠ½Π°Π³ΠΈ ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π°Ρ ΠΎΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΊΠ°ΡΠΎ ΡΠ΅ Π΄ΠΎΠ±Π°Π²Ρ Π³ΠΎΡΠ΅Π½ ΡΠ»ΠΎΠΉ Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π·Π°ΠΏΠΈΡ ΠΈ ΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ. Π’ΡΠΉ ΠΊΠ°ΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡΡ ΠΈΠΌΠ° ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½ ΡΠ»ΠΎΠΉ Π·Π° Π·Π°ΠΏΠΈΡ ΠΈ Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ Π² ΡΠΎΠ·ΠΈ ΡΠ»ΠΎΠΉ, ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠΏΠΎΠ΄Π΅Π»ΡΡ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π΅Π΄Π½ΠΎ ΠΈ ΡΡΡΠΎ Π³Π»Π°Π²Π½ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅.
ΠΡΠ΅ΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½ ΡΡΠ΅Π· ΡΠ°ΠΉΠ» Π² ΠΏΡΠΎΠ΅ΠΊΡΠ° docker-compose, Π²ΠΊΠ»ΡΡΠ΅Π½ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, docker-compose.yml. Π’Π°ΠΌ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π·Π°Π΄Π°Π΄Π΅ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ ΠΊΠ°ΡΠΎ ΠΈΠΌΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, ΠΏΠΎΡΡΠΎΠ²Π΅, ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΈ, ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π° ΡΠ΅ΡΡΡΡΠΈΡΠ΅, Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π΄ΡΡΠ³ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ. ΠΠΊΠΎ Π½Π΅ ΠΏΠΎΡΠΎΡΠΈΡΠ΅ ΠΈΠΌΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅, ΡΠΎΠ³Π°Π²Π° Docker ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π° Π½ΠΎΠ² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π²ΡΠ΅ΠΊΠΈ ΠΏΡΡ, ΠΊΠ°ΡΠΎ ΠΌΡ ΠΏΡΠΈΡΠ²ΠΎΡΠ²Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΎ ΠΈΠΌΠ΅.
ΠΠΎΠ³Π°ΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ° ΠΎΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, Docker ΠΌΠΎΠ½ΡΠΈΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΡΠ΅ΡΠ΅Π½Π΅/Π·Π°ΠΏΠΈΡ Π²ΡΡΡ Ρ Π²ΡΠΈΡΠΊΠΈ ΡΠ»ΠΎΠ΅Π²Π΅ ΠΏΠΎ-Π΄ΠΎΠ»Ρ. Π’ΠΎΠ²Π° Π΅ ΠΌΡΡΡΠΎΡΠΎ, ΠΊΡΠ΄Π΅ΡΠΎ ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π½Π°ΡΠΈΡ Docker ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ.
ΠΠΎΠ³Π°ΡΠΎ Docker Π·Π° ΠΏΡΡΠ²ΠΈ ΠΏΡΡ ΡΡΠ°ΡΡΠΈΡΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΈΡΡ ΡΠ»ΠΎΠΉ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅/Π·Π°ΠΏΠΈΡ Π΅ ΠΏΡΠ°Π·Π΅Π½. ΠΠΎΠ³Π°ΡΠΎ Π²ΡΠ·Π½ΠΈΠΊΠ½Π°Ρ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ, ΡΠ΅ ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π°Ρ ΠΊΡΠΌ ΡΠΎΠ·ΠΈ ΡΠ»ΠΎΠΉ; Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ», ΡΠΎΠ·ΠΈ ΡΠ°ΠΉΠ» ΡΠ΅ Π±ΡΠ΄Π΅ ΠΊΠΎΠΏΠΈΡΠ°Π½ ΠΎΡ ΡΠ»ΠΎΡ ΡΠ°ΠΌΠΎ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅ ΠΏΠΎ-Π΄ΠΎΠ»Ρ Π² ΡΠ»ΠΎΡ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅ ΠΈ Π·Π°ΠΏΠΈΡ.
ΠΠ΅ΡΡΠΈΡΡΠ° ΡΠ°ΠΌΠΎ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅ Π½Π° ΡΠ°ΠΉΠ»Π° Π²ΡΠ΅ ΠΎΡΠ΅ ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°, Π½ΠΎ Π²Π΅ΡΠ΅ Π΅ ΡΠΊΡΠΈΡΠ° ΠΏΠΎΠ΄ ΠΊΠΎΠΏΠΈΠ΅ΡΠΎ. Π’ΠΎΠΌΠΎΠ²Π΅ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π·Π° ΡΡΡ
ΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΠΆΠΈΠ·Π½Π΅Π½ΠΈΡ ΡΠΈΠΊΡΠ» Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°. Π’ΠΎΠΌΠΎΠ²Π΅ΡΠ΅ ΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Ρ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ.
ΠΠ°ΠΊ ΡΠ΅ ΡΠ²ΡΡΠ·Π²Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°?
ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ - ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΡ Π΅Π»Π΅ΠΌΠ΅Π½Ρ Π·Π° Π²ΡΠ΅ΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ. ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π° ΠΎΡ Dockerfile, Π΄ΠΎΠ±Π°Π²Π΅Π½ ΠΊΡΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π° Π½Π°Π±ΠΎΡ ΠΎΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ (ΡΠ»ΠΎΠ΅Π²Π΅), Π½Π°ΡΠ»ΠΎΠ΅Π½ΠΈ Π΅Π΄ΠΈΠ½ Π²ΡΡΡ Ρ Π΄ΡΡΠ³ ΠΈ Π³ΡΡΠΏΠΈΡΠ°Π½ΠΈ Π·Π°Π΅Π΄Π½ΠΎ, Π΄ΠΎΡΡΡΠΏΠ½ΠΈ ΡΠ°ΠΌΠΎ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅; ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΈΡΡ Π±ΡΠΎΠΉ ΡΠ»ΠΎΠ΅Π²Π΅ Π΅ 127.
Π ΠΎΡΠ½ΠΎΠ²Π°ΡΠ° Π½Π° Π²ΡΡΠΊΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π΅ Π±Π°Π·ΠΎΠ²ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ ΡΠΊΠ°Π·Π²Π° ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° FROM β Π²Ρ
ΠΎΠ΄Π½Π°ΡΠ° ΡΠΎΡΠΊΠ° ΠΏΡΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° Dockerfile ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. ΠΡΠ΅ΠΊΠΈ ΡΠ»ΠΎΠΉ Π΅ ΡΠ»ΠΎΠΉ ΡΠ°ΠΌΠΎ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅ ΠΈ Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ ΠΎΡ Π΅Π΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΊΠΎΡΡΠΎ ΠΏΡΠΎΠΌΠ΅Π½Ρ ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°, Π½Π°ΠΏΠΈΡΠ°Π½Π° Π² Dockerfile.
ΠΠ° Π΄Π° ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ° ΡΠ΅Π·ΠΈ ΡΠ»ΠΎΠ΅Π²Π΅ Π² Π΅Π΄Π½ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, Docker ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΡΡΠ²ΡΡΡΠ΅Π½ΡΡΠ²Π°Π½Π°ΡΠ° ΠΌΠ½ΠΎΠ³ΠΎΠΏΠ»Π°ΡΡΠΎΠ²Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ° Union (AuFS Π΅ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ Π²ΡΡΡ
Ρ UnionFS), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΠΉΠΊΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΠΎΡ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈ ΡΠ»ΠΎΠ΅Π²Π΅ Π΄Π° ΡΠ΅ ΠΏΡΠΈΠΏΠΎΠΊΡΠΈΠ²Π°Ρ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎ, ΡΡΠ·Π΄Π°Π²Π°ΠΉΠΊΠΈ ΡΠ²ΡΡΠ·Π°Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ°.
Π‘Π»ΠΎΠ΅Π²Π΅ΡΠ΅ ΡΡΠ΄ΡΡΠΆΠ°Ρ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π΄Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΡΠ΅ ΡΠ²ΡΡΠ·Π°Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° Π²ΡΠ΅ΠΊΠΈ ΡΠ»ΠΎΠΉ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅. ΠΡΠ΅ΠΊΠΈ ΡΠ»ΠΎΠΉ ΡΡΠ΄ΡΡΠΆΠ° Π²ΡΡΠ·ΠΊΠ° ΠΊΡΠΌ ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡ ΡΠ»ΠΎΠΉ, Π°ΠΊΠΎ ΡΠ»ΠΎΡΡ Π½ΡΠΌΠ° Π²ΡΡΠ·ΠΊΠ°, ΡΠΎΠ³Π°Π²Π° ΡΠΎΠ²Π° Π΅ Π½Π°ΠΉ-Π³ΠΎΡΠ½ΠΈΡΡ ΡΠ»ΠΎΠΉ Π² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ.
Dockerfile ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡΠ΄ΡΡΠΆΠ° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΊΠ°ΡΠΎ:
- ΠΠ’ - Π²Ρ ΠΎΠ΄Π½Π° ΡΠΎΡΠΊΠ° ΠΏΡΠΈ ΡΠΎΡΠΌΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ;
- MAINTAINER - ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΠΊΠ° Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ;
- RUN - ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° Π°ΡΠ΅ΠΌΠ±Π»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅;
- ADD - ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅ Π½Π° Ρ ΠΎΡΡ ΡΠ°ΠΉΠ»Π° Π² Π½ΠΎΠ²ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, Π°ΠΊΠΎ ΠΏΠΎΡΠΎΡΠΈΡΠ΅ URL ΡΠ°ΠΉΠ», Docker ΡΠ΅ Π³ΠΎ ΠΈΠ·ΡΠ΅Π³Π»ΠΈ Π² ΠΏΠΎΡΠΎΡΠ΅Π½Π°ΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ;
- ENV - ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° ΡΡΠ΅Π΄Π°ΡΠ°;
- CMD - ΡΡΠ°ΡΡΠΈΡΠ° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π½ΠΎΠ² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ;
- ENTRYPOINT - ΠΠΎΠΌΠ°Π½Π΄Π°ΡΠ° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΠΏΡΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°.
- WORKDIR Π΅ ΡΠ°Π±ΠΎΡΠ½Π°ΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° CMD.
- ΠΠΠ’Π ΠΠΠΠ’ΠΠ - ΠΠ°Π΄Π°Π²Π° UID Π·Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°, ΡΡΠ·Π΄Π°Π΄Π΅Π½ ΠΎΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ.
- VOLUME - ΠΠΎΠ½ΡΠΈΡΠ° Ρ ΠΎΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ° ΠΊΡΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°.
- EXPOSE Π΅ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΏΠΎΡΡΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΠ»ΡΡΠ°Ρ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°.
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ UnionFS?
UnionFS β ΡΠ°ΠΉΠ»ΠΎΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π½Π° ΡΠ΅ΡΠ²ΠΈΠ·Π΅Π½ ΡΡΠ΅ΠΊ (FS) Π·Π° Linux ΠΈ FreeBSD. Π’ΠΎΠ·ΠΈ FS ΠΏΡΠΈΠ»Π°Π³Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Π·Π° ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅ ΠΏΡΠΈ Π·Π°ΠΏΠΈΡ (Copy-On-Write, COW). Π Π°Π±ΠΎΡΠ½Π°ΡΠ° Π΅Π΄ΠΈΠ½ΠΈΡΠ° Π½Π° UnionFS Π΅ ΡΠ»ΠΎΠΉ, Π²ΡΠ΅ΠΊΠΈ ΡΠ»ΠΎΠΉ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π° ΠΊΠ°ΡΠΎ ΠΎΡΠ΄Π΅Π»Π½Π° ΠΏΡΠ»Π½ΠΎΡΠ΅Π½Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ° Ρ ΠΉΠ΅ΡΠ°ΡΡ ΠΈΡ Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΠΎΡ ΡΠ°ΠΌΠΈΡ ΠΊΠΎΡΠ΅Π½. UnionFS ΡΡΠ·Π΄Π°Π²Π° ΠΌΠΎΠ½ΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΡΠ· Π·Π° Π΄ΡΡΠ³ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΈ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎ Π΄Π° ΠΎΠ±Π΅Π΄ΠΈΠ½ΡΠ²Π°ΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΠΎΡ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ (Π½Π°ΡΠ΅ΡΠ΅Π½ΠΈ ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅) Π² Π΅Π΄Π½Π° ΡΠ²ΡΡΠ·Π°Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎ Π·Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ.
Π‘ΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Ρ Π΅Π΄Π½Π°ΠΊΠ²ΠΈ ΠΏΡΡΠΈΡΠ° ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π·Π°Π΅Π΄Π½ΠΎ Π² Π΅Π΄Π½Π° ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ (Π² Π΅Π΄Π½ΠΎ ΠΈ ΡΡΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΎΡ ΠΈΠΌΠ΅Π½Π°) Π½Π° ΠΏΠΎΠ»ΡΡΠ΅Π½Π°ΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ°.
UnionFS ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ° ΡΠ»ΠΎΠ΅Π²Π΅ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈ:
- Π΅Π΄ΠΈΠ½ ΠΎΡ ΡΠ»ΠΎΠ΅Π²Π΅ΡΠ΅ ΡΡΠ°Π²Π° ΡΠ»ΠΎΠΉ ΠΎΡ Π½Π°ΠΉ-Π²ΠΈΡΠΎΠΊΠΎ Π½ΠΈΠ²ΠΎ, Π²ΡΠΎΡΠΈΡΡ ΠΈ ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡΠ΅ ΡΠ»ΠΎΠ΅Π²Π΅ ΡΡΠ°Π²Π°Ρ ΡΠ»ΠΎΠ΅Π²Π΅ ΠΎΡ ΠΏΠΎ-Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ;
- ΠΎΠ±Π΅ΠΊΡΠΈΡΠ΅ Π½Π° ΡΠ»ΠΎΡ ΡΠ° Π΄ΠΎΡΡΡΠΏΠ½ΠΈ Π·Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ βΠΎΡΠ³ΠΎΡΠ΅ Π½Π°Π΄ΠΎΠ»Ρβ, Ρ.Π΅. Π°ΠΊΠΎ ΠΈΡΠΊΠ°Π½ΠΈΡΡ ΠΎΠ±Π΅ΠΊΡ Π΅ Π² "Π³ΠΎΡΠ½ΠΈΡ" ΡΠ»ΠΎΠΉ, ΡΠΎΠΉ ΡΠ΅ Π²ΡΡΡΠ°, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΠΎΠ±Π΅ΠΊΡ ΡΡΡ ΡΡΡΠΎΡΠΎ ΠΈΠΌΠ΅ Π² "Π΄ΠΎΠ»Π½ΠΈΡ" ΡΠ»ΠΎΠΉ; Π² ΠΏΡΠΎΡΠΈΠ²Π΅Π½ ΡΠ»ΡΡΠ°ΠΉ ΡΠ΅ Π²ΡΡΡΠ° ΠΎΠ±Π΅ΠΊΡΡΡ Π½Π° "Π΄ΠΎΠ»Π½ΠΈΡ" ΡΠ»ΠΎΠΉ; Π°ΠΊΠΎ ΠΈΡΠΊΠ°Π½ΠΈΡΡ ΠΎΠ±Π΅ΠΊΡ Π½Π΅ Π΅ Π½ΠΈΡΠΎ ΡΠ°ΠΌ, Π½ΠΈΡΠΎ ΡΠ°ΠΌ, ΡΠ΅ Π²ΡΡΡΠ° Π³ΡΠ΅ΡΠΊΠ°ΡΠ° "ΠΡΠΌΠ° ΡΠ°ΠΊΡΠ² ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ";
- ΡΠ°Π±ΠΎΡΠ½ΠΈΡΡ ΡΠ»ΠΎΠΉ Π΅ βΠ½Π°ΠΉ-Π³ΠΎΡΠ½ΠΈΡΡβ, Ρ.Π΅. Π²ΡΠΈΡΠΊΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π·Π° ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° Π΄Π°Π½Π½ΠΈ ΡΠ΅ ΠΎΡΡΠ°Π·ΡΠ²Π°Ρ ΡΠ°ΠΌΠΎ Π²ΡΡΡ Ρ ΡΠ»ΠΎΡ ΠΎΡ Π½Π°ΠΉ-Π²ΠΈΡΠΎΠΊΠΎ Π½ΠΈΠ²ΠΎ, Π±Π΅Π· Π΄Π° ΡΠ΅ Π·Π°ΡΡΠ³Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ»ΠΎΠ΅Π²Π΅ΡΠ΅ ΠΎΡ ΠΏΠΎ-Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ.
Docker Π΅ Π½Π°ΠΉ-ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π°ΡΠ° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π² ΡΠ°Π±ΠΎΡΠ°ΡΠ° Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π’ΠΎΠΉ ΡΠ΅ ΠΏΡΠ΅Π²ΡΡΠ½Π° Π² ΡΡΠ°Π½Π΄Π°ΡΡ Π² ΡΠ°Π·ΠΈ ΠΎΠ±Π»Π°ΡΡ, Π½Π°Π΄Π³ΡΠ°ΠΆΠ΄Π°ΠΉΠΊΠΈ cgroups ΠΈ namespaces, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ΠΈ ΠΎΡ Linux ΡΠ΄ΡΠΎΡΠΎ.
Docker Π½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π±ΡΡΠ·ΠΎ Π΄Π° Π²Π½Π΅Π΄ΡΡΠ²Π°ΠΌΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΊΠ°ΡΠΎ ΡΠΏΠΎΠ΄Π΅Π»ΡΠΌΠ΅ ΡΠ΄ΡΠΎΡΠΎ Π½Π° ΠΠ‘ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠΈΡΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ, ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ ΠΊΠ°ΡΠΎ ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ Π½Π° ΠΠ‘.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com