ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ Docker ΠΎΡ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΌΠ΅ΡΠ΅ΡΠ°, Π·Π° Π΄Π° ΡΡΡΡΠΊΡΡΡΠΈΡΠ°ΠΌ ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°/Π΄ΠΎΡΡΠ°Π²ΠΊΠ° Π½Π° ΡΠ΅Π± ΠΏΡΠΎΠ΅ΠΊΡΠΈ. ΠΡΠ΅Π΄Π»Π°Π³Π°ΠΌ Π½Π° ΡΠΈΡΠ°ΡΠ΅Π»ΠΈΡΠ΅ Π½Π° Habrakhabr ΠΏΡΠ΅Π²ΠΎΠ΄ Π½Π° ΡΠ²ΠΎΠ΄Π½Π°ΡΠ° ΡΡΠ°ΡΠΈΡ Π·Π° docker -
ΠΠ°ΠΊΠ²ΠΎ Π΅ Π΄ΠΎΠΊΠ΅Ρ?
Docker Π΅ ΠΎΡΠ²ΠΎΡΠ΅Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅, Π΄ΠΎΡΡΠ°Π²ΡΠ½Π΅ ΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Docker Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½ Π΄Π° Π΄ΠΎΡΡΠ°Π²Ρ Π²Π°ΡΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ-Π±ΡΡΠ·ΠΎ. Π‘ docker ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΎΡΠ΄Π΅Π»ΠΈΡΠ΅ Π²Π°ΡΠ΅ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ Π²Π°ΡΠ°ΡΠ° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΈ Π΄Π° ΡΡΠ΅ΡΠΈΡΠ°ΡΠ΅ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° ΠΊΠ°ΡΠΎ ΡΠΏΡΠ°Π²Π»ΡΠ²Π°Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Docker Π²ΠΈ ΠΏΠΎΠΌΠ°Π³Π° Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°ΡΠ΅ ΠΊΠΎΠ΄Π° ΡΠΈ ΠΏΠΎ-Π±ΡΡΠ·ΠΎ, Π΄Π° ΡΠ΅ΡΡΠ²Π°ΡΠ΅ ΠΏΠΎ-Π±ΡΡΠ·ΠΎ, Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ-Π±ΡΡΠ·ΠΎ ΠΈ Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈΡΠ΅ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ΄ ΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ΄. Docker ΠΏΡΠ°Π²ΠΈ ΡΠΎΠ²Π° ΡΡΠ΅Π· Π»Π΅ΠΊΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π·Π° Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ ΠΈ ΠΏΠΎΠΌΠΎΡΠ½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ, ΠΊΠΎΠΈΡΠΎ Π²ΠΈ ΠΏΠΎΠΌΠ°Π³Π°Ρ Π΄Π° ΡΠΏΡΠ°Π²Π»ΡΠ²Π°ΡΠ΅ ΠΈ Π΄ΠΎΡΡΠ°Π²ΡΡΠ΅ Π²Π°ΡΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π ΠΎΡΠ½ΠΎΠ²Π°ΡΠ° ΡΠΈ Docker Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ ΠΏΠΎΡΡΠΈ Π²ΡΡΠΊΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ΠΎ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ. Π‘ΠΈΠ³ΡΡΠ½Π°ΡΠ° ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π½Π° Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡ Ρ
ΠΎΡΡ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. ΠΠ΅ΠΊΠΈΡΡ Ρ
Π°ΡΠ°ΠΊΡΠ΅Ρ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°, ΠΊΠΎΠΉΡΠΎ ΡΠ°Π±ΠΎΡΠΈ Π±Π΅Π· Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎΡΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ Π½Π° Ρ
ΠΈΠΏΠ΅ΡΠ²Π°ΠΉΠ·ΠΎΡ, Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΈΠ·Π²Π»Π΅ΡΠ΅ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ Π²Π°ΡΠΈΡ Ρ
Π°ΡΠ΄ΡΠ΅Ρ.
ΠΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈΡΠ΅ Π·Π° Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΈ Π² ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΡΠ»ΡΡΠ°ΠΈ:
- ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅ Π½Π° Π²Π°ΡΠ΅ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅) Π² Π΄ΠΎΠΊΠ΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ;
- ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈ Π΄ΠΎΡΡΠ°Π²ΠΊΠ° Π½Π° ΡΠ΅Π·ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π΄ΠΎ Π²Π°ΡΠΈΡΠ΅ Π΅ΠΊΠΈΠΏΠΈ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈ ΡΠ΅ΡΡΠ²Π°Π½Π΅;
- ΠΏΠΎΡΡΠ°Π²ΡΠ½Π΅ Π½Π° ΡΠ΅Π·ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π½Π° Π²Π°ΡΠΈΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½ΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ, ΠΊΠ°ΠΊΡΠΎ Π² ΡΠ΅Π½ΡΡΠΎΠ²Π΅ Π·Π° Π΄Π°Π½Π½ΠΈ, ΡΠ°ΠΊΠ° ΠΈ Π² ΠΎΠ±Π»Π°ΡΠΈ.
ΠΠ° ΠΊΠ°ΠΊΠ²ΠΎ ΠΌΠΎΠ³Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ Π΄ΠΎΠΊΠ΅Ρ?
ΠΡΡΠ·ΠΎ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°ΠΉΡΠ΅ Π²Π°ΡΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Docker Π΅ ΡΡΡΠ°Ρ ΠΎΡΠ΅Π½ Π·Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΈΠΊΡΠ»Π° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°. Docker ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°Ρ Π»ΠΎΠΊΠ°Π»Π½ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΡΠ»ΡΠ³ΠΈ. ΠΠΎΠ΅ΡΠΎ Π²ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°ΡΠ΅ Ρ ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠ° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ ΠΈ ΡΠ°Π±ΠΎΡΠ½ΠΈΡ ΠΏΡΠΎΡΠ΅Ρ Π½Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ Π²Π°ΡΠΈΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ ΠΏΠΈΡΠ°Ρ ΠΊΠΎΠ΄ Π»ΠΎΠΊΠ°Π»Π½ΠΎ ΠΈ ΡΠΏΠΎΠ΄Π΅Π»ΡΡ ΡΠ²ΠΎΡ ΡΡΠ΅ΠΊ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° (Π½Π°Π±ΠΎΡ ΠΎΡ Docker ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ) Ρ ΠΊΠΎΠ»Π΅Π³ΠΈ. ΠΠΎΠ³Π°ΡΠΎ ΡΠ° Π³ΠΎΡΠΎΠ²ΠΈ, ΠΈΠ·ΠΏΡΠ°ΡΠ°Ρ ΠΊΠΎΠ΄Π° ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ Π½Π° ΡΠ΅ΡΡΠΎΠ²ΠΈΡ ΡΠ°ΠΉΡ ΠΈ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ Π²ΡΠΈΡΠΊΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ ΡΠ΅ΡΡΠΎΠ²Π΅. ΠΡ ΡΠ΅ΡΡΠΎΠ²Π°ΡΠ° ΠΏΠ»ΠΎΡΠ°Π΄ΠΊΠ° ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Ρ ΠΊΠΎΠ΄ ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΊΡΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎΡΠΎ.
ΠΠΎ-Π»Π΅ΡΠ½ΠΎ ΠΏΠΎΡΡΠ°Π²ΡΠ½Π΅ ΠΈ ΡΠ°Π·Π³ΡΠ²Π°Π½Π΅
ΠΠ°Π·ΠΈΡΠ°Π½Π°ΡΠ° Π½Π° Π΄ΠΎΠΊΠ΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΡΠ»Π΅ΡΠ½ΡΠ²Π° ΠΏΡΠ΅Π½Π°ΡΡΠ½Π΅ΡΠΎ Π½Π° Π²Π°ΡΠΈΡ ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΡΠΎΠ²Π°Ρ. Docker ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ°Π±ΠΎΡΡΡ Π½Π° Π²Π°ΡΠ°ΡΠ° Π»ΠΎΠΊΠ°Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π°, ΡΠ΅Π°Π»Π½Π° ΠΈΠ»ΠΈ Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π° Π² ΡΠ΅Π½ΡΡΡ Π·Π° Π΄Π°Π½Π½ΠΈ ΠΈΠ»ΠΈ Π² ΠΎΠ±Π»Π°ΠΊΠ°.
ΠΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΡΠ° ΠΈ Π»Π΅ΠΊΠΎΡΠΎ Π΅ΡΡΠ΅ΡΡΠ²ΠΎ Π½Π° docker ΡΠ»Π΅ΡΠ½ΡΠ²Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎΡΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΠ½ΠΎΡΠΎ Π²ΠΈ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π΄ΠΎΠΊΠ΅Ρ, Π·Π° Π΄Π° Π²Π½Π΅Π΄ΡΠΈΡΠ΅ ΠΈΠ»ΠΈ Π·Π°ΡΠ²ΠΎΡΠΈΡΠ΅ Π²Π°ΡΠ΅ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡΡΠ»ΡΠ³ΠΈ. Π‘ΠΊΠΎΡΠΎΡΡΡΠ° Π½Π° docker ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΠΎΠ²Π° Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ ΠΏΠΎΡΡΠΈ Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅.
ΠΠΎ-Π²ΠΈΡΠΎΠΊΠΈ ΡΠΎΠ²Π°ΡΠΈ ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΈ ΡΠΎΠ²Π°ΡΠΈ
Docker Π΅ Π»Π΅ΠΊ ΠΈ Π±ΡΡΠ·. Π’ΠΎΠΉ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° Π³ΡΠ²ΠΊΠ°Π²Π°, ΡΠ΅Π½ΡΠ°Π±ΠΈΠ»Π½Π° Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° Π½Π° Π±Π°Π·ΠΈΡΠ°Π½ΠΈΡΠ΅ Π½Π° Ρ ΠΈΠΏΠ΅ΡΠ²Π°ΠΉΠ·ΠΎΡ Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ. Π’ΠΎΠ²Π° Π΅ ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π² ΡΡΠ΅Π΄ΠΈ Ρ Π³ΠΎΠ»ΡΠΌΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΡΠ·Π΄Π°Π²Π°ΡΠ΅ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½ ΠΎΠ±Π»Π°ΠΊ ΠΈΠ»ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΊΠ°ΡΠΎ ΡΡΠ»ΡΠ³Π°. ΠΠΎ ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π·Π° ΠΌΠ°Π»ΠΊΠΈ ΠΈ ΡΡΠ΅Π΄Π½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΠΈΠ·Π²Π»Π΅ΡΠ΅ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ ΡΠ΅ΡΡΡΡΠΈΡΠ΅, Ρ ΠΊΠΎΠΈΡΠΎ ΡΠ°Π·ΠΏΠΎΠ»Π°Π³Π°ΡΠ΅.
ΠΡΠ½ΠΎΠ²Π½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π½Π° Docker
Docker ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ Π΄Π²Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°:
- Docker: ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π·Π° Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄;
- Docker Hub: ΠΠ°ΡΠ°ΡΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΊΠ°ΡΠΎ ΡΡΠ»ΡΠ³Π° Π·Π° ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Docker ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ.
ΠΠ°Π±Π΅Π»Π΅ΠΆΠΊΠ°! Docker ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π· Apache 2.0.
ΠΠΎΠΊΠ΅Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°
Docker ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΊΠ»ΠΈΠ΅Π½Ρ-ΡΡΡΠ²ΡΡ. ΠΠ»ΠΈΠ΅Π½ΡΡΡ Docker ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠΈΡΠ° Ρ Π΄Π΅ΠΌΠΎΠ½Π° Docker, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ΅ΠΌΠ° Π±ΡΠ΅ΠΌΠ΅ΡΠΎ Π΄Π° ΡΡΠ·Π΄Π°Π²Π°, ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΠΈ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° Π²Π°ΡΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ. Π ΠΊΠ»ΠΈΠ΅Π½ΡΡΡ, ΠΈ ΡΡΡΠ²ΡΡΡΡ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ°Π±ΠΎΡΡΡ Π½Π° Π΅Π΄Π½Π° ΠΈ ΡΡΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ²ΡΡΠΆΠ΅ΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΊΡΠΌ ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ Π΄ΠΎΠΊΠ΅Ρ Π΄Π΅ΠΌΠΎΠ½. ΠΠ»ΠΈΠ΅Π½ΡΡΡ ΠΈ ΡΡΡΠ²ΡΡΡΡ ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠΈΡΠ°Ρ ΡΡΠ΅Π· ΡΠΎΠΊΠ΅Ρ ΠΈΠ»ΠΈ RESTful API.
ΠΠΎΠΊΠ΅Ρ Π΄Π΅ΠΌΠΎΠ½
ΠΠ°ΠΊΡΠΎ Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ°ΡΠ°, Π΄Π΅ΠΌΠΎΠ½ΡΡ ΡΠ°Π±ΠΎΡΠΈ Π½Π° Ρ ΠΎΡΡ ΠΌΠ°ΡΠΈΠ½Π°ΡΠ°. ΠΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡ Π½Π΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²Π° Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΡΡΡ ΡΡΡΠ²ΡΡΠ°, Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π·Π° ΡΠΎΠ²Π°.
Docker ΠΊΠ»ΠΈΠ΅Π½Ρ
ΠΠ»ΠΈΠ΅Π½ΡΡΡ Docker, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° Docker, Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π° Docker. Π’ΠΎΠΉ ΠΏΠΎΠ»ΡΡΠ°Π²Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΎΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²Π° Ρ Π΄ΠΎΠΊΠ΅Ρ Π΄Π΅ΠΌΠΎΠ½Π°.
ΠΡΡΡΠ΅ΡΠ΅Π½ Π΄ΠΎΠΊΠ΅Ρ
ΠΠ° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΎΡ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΡΡΡΠΎΠΈ Π΄ΠΎΠΊΠ΅ΡΡΡ, ΡΡΡΠ±Π²Π° Π΄Π° Π·Π½Π°Π΅ΡΠ΅ Π·Π° ΡΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°:
- ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
- ΡΠ΅Π³ΠΈΡΡΡΡ
- ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ
ΠΎΠ±ΡΠ°Π·ΠΈ
ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Docker Π΅ ΡΠ°Π±Π»ΠΎΠ½ ΡΠ°ΠΌΠΎ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡΠ΄ΡΡΠΆΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Ubuntu Ρ Apache ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΡΡ Ρ Π½Π΅Ρ. ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΡΠ° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ. Docker ΡΠ»Π΅ΡΠ½ΡΠ²Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π½ΠΎΠ²ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈ ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΈ ΠΎΡ Π΄ΡΡΠ³ΠΈ Ρ ΠΎΡΠ°. ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΡΠ° ΡΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π½Π° Π΄ΠΎΠΊΠ΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ.
Π Π΅Π³ΠΈΡΡΡΡΡΡ
Π Π΅Π³ΠΈΡΡΡΡΡΡ Π½Π° Docker ΡΡΡ
ΡΠ°Π½ΡΠ²Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΠΌΠ° ΠΏΡΠ±Π»ΠΈΡΠ½ΠΈ ΠΈ ΡΠ°ΡΡΠ½ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠΈ, ΠΎΡ ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΡΠ΅ ΠΈΠ»ΠΈ ΠΊΠ°ΡΠ²Π°ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΡΠ±Π»ΠΈΡΠ΅Π½ ΡΠ΅Π³ΠΈΡΡΡΡ Π½Π° Docker Π΅
ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ
ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ ΡΠ° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈΡΠ΅. ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ ΡΡΠ΄ΡΡΠΆΠ°Ρ Π²ΡΠΈΡΠΊΠΎ, ΠΎΡ ΠΊΠΎΠ΅ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅, Π·Π° Π΄Π° ΡΠ°Π±ΠΎΡΠΈ. ΠΡΠ΅ΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π΅ ΡΡΠ·Π΄Π°Π΄Π΅Π½ ΠΎΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π°Ρ, ΡΡΠ°ΡΡΠΈΡΠ°Ρ, ΡΠΏΠΈΡΠ°Ρ, ΠΌΠΈΠ³ΡΠΈΡΠ°Ρ ΠΈΠ»ΠΈ ΠΈΠ·ΡΡΠΈΠ²Π°Ρ. ΠΡΠ΅ΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π΅ ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ ΠΈ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΡΠΈΠ³ΡΡΠ½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π·Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ. ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ ΡΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ°.
Π ΡΠ°ΠΊΠ°, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ Docker?
ΠΠΎΡΠ΅Π³Π° Π·Π½Π°Π΅ΠΌ, ΡΠ΅:
- ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π² ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ°Ρ Π½Π°ΡΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ;
- ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΠΎΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ;
- ΠΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π°ΠΌΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΡΠ΅Π· Docker Hub ΠΈΠ»ΠΈ Π΄ΡΡΠ³ ΡΠ΅Π³ΠΈΡΡΡΡ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
ΠΠ΅ΠΊΠ° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊ ΡΠ΅Π·ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ ΡΠ΅ Π²ΠΏΠΈΡΠ²Π°Ρ Π·Π°Π΅Π΄Π½ΠΎ.
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ?
ΠΠ΅ΡΠ΅ Π·Π½Π°Π΅ΠΌ, ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π΅ ΡΠ°Π±Π»ΠΎΠ½ ΡΠ°ΠΌΠΎ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅, ΠΎΡ ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ. ΠΡΡΠΊΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ Π½Π°Π±ΠΎΡ ΠΎΡ Π½ΠΈΠ²Π°. Docker ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°
ΠΠ΄Π½Π° ΠΎΡ ΠΏΡΠΈΡΠΈΠ½ΠΈΡΠ΅, ΠΏΠΎΡΠ°Π΄ΠΈ ΠΊΠΎΠΈΡΠΎ docker Π΅ Π»Π΅ΠΊ Π΅, ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ»ΠΎΠ΅Π²Π΅ ΠΊΠ°ΡΠΎ ΡΠΎΠ·ΠΈ. ΠΠΎΠ³Π°ΡΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, ΠΊΠ°ΡΠΎ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π° Π½ΠΎΠ² ΡΠ»ΠΎΠΉ. Π’Π°ΠΊΠ° ΡΠ΅, Π±Π΅Π· Π΄Π° Π·Π°ΠΌΠ΅Π½ΡΡΠ΅ ΡΡΠ»ΠΎΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π΄Π° Π³ΠΎ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°ΡΠ΅ Π½Π°Π½ΠΎΠ²ΠΎ, ΠΊΠ°ΠΊΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½Π°Π»ΠΎΠΆΠΈ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ Ρ Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π°, ΡΠ°ΠΌΠΎ ΡΠ»ΠΎΡΡ ΡΠ΅ Π΄ΠΎΠ±Π°Π²Ρ ΠΈΠ»ΠΈ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°. Π Π½Π΅ Π΅ Π½ΡΠΆΠ½ΠΎ Π΄Π° ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π°ΡΠ΅ ΡΡΠ»ΠΎΡΠΎ Π½ΠΎΠ²ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΡΠ΅ ΡΠ°ΠΌΠΎ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ°, ΠΊΠΎΠ΅ΡΠΎ ΠΏΡΠ°Π²ΠΈ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ-Π»Π΅ΡΠ½ΠΎ ΠΈ ΠΏΠΎ-Π±ΡΡΠ·ΠΎ.
Π ΠΎΡΠ½ΠΎΠ²Π°ΡΠ° Π½Π° Π²ΡΡΠΊΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ ubuntu, Π±Π°Π·ΠΎΠ²ΠΎΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Ubuntu, ΠΈΠ»ΠΈ fedora, ΠΎΡΠ½ΠΎΠ²Π½ΠΎΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡΡΠ° Π½Π° Fedora. ΠΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠΎ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΊΠ°ΡΠΎ ΠΎΡΠ½ΠΎΠ²Π° Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π½ΠΎΠ²ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° apache, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΊΠ°ΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π·Π° Π²Π°ΡΠΈΡΠ΅ ΡΠ΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ°Π±Π΅Π»Π΅ΠΆΠΊΠ°! Docker ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΈΠ·ΡΠ΅Π³Π»Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΎΡ ΡΠ΅Π³ΠΈΡΡΡΡΠ° Π½Π° Docker Hub.
Docker ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΈ ΠΎΡ ΡΠ΅Π·ΠΈ Π±Π°Π·ΠΎΠ²ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ; Π½ΠΈΠ΅ Π½Π°ΡΠΈΡΠ°ΠΌΠ΅ ΡΡΡΠΏΠΊΠΈΡΠ΅ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ΅Π·ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ. ΠΡΡΠΊΠ° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΡΡΠ·Π΄Π°Π²Π° Π½ΠΎΠ²ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π½ΠΈΠ²ΠΎ. ΠΠ½ΡΡΡΡΠΊΡΠΈΠΈΡΠ΅ ΡΠ΅ Π±ΡΠ΄Π°Ρ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅:
- ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅
- Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ
- ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Π½Π° ΡΡΠ΅Π΄Π°ΡΠ°
- ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΠΈ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡΡ Π½Π° ΡΠΎΠ²Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
Π’Π΅Π·ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΡΠ΅ ΡΡΡ
ΡΠ°Π½ΡΠ²Π°Ρ Π²ΡΠ² ΡΠ°ΠΉΠ» Dockerfile
. ΠΠΎΠΊΠ΅Ρ ΡΠ΅ΡΠ΅ ΡΠΎΠ²Π° Dockerfile
, ΠΊΠΎΠ³Π°ΡΠΎ ΡΡΠ·Π΄Π°Π²Π°ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΡΠ΅Π·ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΈ Π²ΡΡΡΠ° ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»Π½ΠΎΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅.
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ Π΄ΠΎΠΊΠ΅ΡΡΠΊΠΈΡΡ ΡΠ΅Π³ΠΈΡΡΡΡ?
Π Π΅Π³ΠΈΡΡΡΡΡΡ Π΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π·Π° Π΄ΠΎΠΊΠ΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π±ΡΠ΄Π΅ ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΎ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°ΡΠ΅ Π² ΠΏΡΠ±Π»ΠΈΡΠ½ΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΡ Π½Π° Docker Hub ΠΈΠ»ΠΈ Π²ΡΠ² Π²Π°ΡΠΈΡ Π»ΠΈΡΠ΅Π½ ΡΠ΅Π³ΠΈΡΡΡΡ.
Π‘ Π΄ΠΎΠΊΠ΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΡΡΠΈΡΠ΅ Π²Π΅ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ Π΄Π° Π³ΠΈ ΠΈΠ·ΡΠ΅Π³Π»ΠΈΡΠ΅ Π½Π° Π²Π°ΡΠ°ΡΠ° Π΄ΠΎΠΊΠ΅Ρ ΠΌΠ°ΡΠΈΠ½Π°, Π·Π° Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ.
Docker Hub ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΈ ΠΈ ΡΠ°ΡΡΠ½ΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Π·Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. Π’ΡΡΡΠ΅Π½Π΅ΡΠΎ ΠΈ ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅ΡΠΎ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΎΡ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Π΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π·Π° Π²ΡΠΈΡΠΊΠΈ. Π‘ΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ°ΡΡΠ½ΠΈΡΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Π½Π΅ Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ Π² ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΡ ΡΡΡΡΠ΅Π½Π΅ΡΠΎ. Π ΡΠ°ΠΌΠΎ Π²ΠΈΠ΅ ΠΈ Π²Π°ΡΠΈΡΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΡΠ΅ ΡΠ΅Π·ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ Π΄Π° ΡΡΠ·Π΄Π°Π²Π°ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΠΎΡ ΡΡΡ .
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ Π΅Π΄ΠΈΠ½ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ?
ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡΡ ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈ. ΠΠ°ΠΊΡΠΎ Π·Π½Π°Π΅ΠΌ, Π²ΡΠ΅ΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π΅ ΡΡΠ·Π΄Π°Π΄Π΅Π½ ΠΎΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. Π’ΠΎΠ²Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°Π·Π²Π° Π½Π° Docker ΠΊΠ°ΠΊΠ²ΠΎ ΠΈΠΌΠ° Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°, ΠΊΠ°ΠΊΡΠ² ΠΏΡΠΎΡΠ΅Ρ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°, ΠΊΠΎΠ³Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡΡ ΡΡΠ°ΡΡΠΈΡΠ° ΠΈ Π΄ΡΡΠ³ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ Π΄Π°Π½Π½ΠΈ. ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Docker Π΅ ΡΠ°ΠΌΠΎ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅. ΠΠΎΠ³Π°ΡΠΎ docker ΡΡΠ°ΡΡΠΈΡΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, ΡΠΎΠΉ ΡΡΠ·Π΄Π°Π²Π° ΡΠ»ΠΎΠΉ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅/Π·Π°ΠΏΠΈΡ Π² Π³ΠΎΡΠ½Π°ΡΠ° ΡΠ°ΡΡ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ (ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΎΠ±Π΅Π΄ΠΈΠ½Π΅Π½Π°ΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΊΠ°ΠΊΡΠΎ Π±Π΅ΡΠ΅ ΠΏΠΎΡΠΎΡΠ΅Π½ΠΎ ΠΏΠΎ-Π³ΠΎΡΠ΅), Π² ΠΊΠΎΠΉΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ.
ΠΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π°, ΠΊΠΎΠ³Π°ΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡΡ Π·Π°ΠΏΠΎΡΠ½Π΅?
ΠΠ»ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° docker
, ΠΈΠ»ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ RESTful API, Π΄ΠΎΠΊΠ΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡΡ ΠΊΠ°Π·Π²Π° Π½Π° Π΄ΠΎΠΊΠ΅Ρ Π΄Π΅ΠΌΠΎΠ½Π° Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°.
$ sudo docker run -i -t ubuntu /bin/bash
ΠΠ΅ΠΊΠ° Π΄Π° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΡΠ°Π·ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°. ΠΠ»ΠΈΠ΅Π½ΡΡΡ ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° docker
, Ρ ΠΎΠΏΡΠΈΡ run
, ΠΊΠΎΠ΅ΡΠΎ ΠΊΠ°Π·Π²Π°, ΡΠ΅ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΡΡΠ½Π°Ρ Π½ΠΎΠ² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ. ΠΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡ Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΡΠ° ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΠΈ:
- ΠΊΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°. Π Π½Π°ΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉ
ubuntu
- ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ°, ΠΊΠΎΡΡΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅ ΠΏΡΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°. Π Π½Π°ΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉ
/bin/bash
ΠΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π° ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠ°ΠΊΠ°, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌ ΡΠ°Π·ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°?
Docker, ΠΏΠΎ ΡΠ΅Π΄, ΠΏΡΠ°Π²ΠΈ ΡΠ»Π΅Π΄Π½ΠΎΡΠΎ:
- ΠΈΠ·ΡΠ΅Π³Π»Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ubuntu: docker ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° Π·Π° Π½Π°Π»ΠΈΡΠ½ΠΎΡΡ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ
ubuntu
Π½Π° Π»ΠΎΠΊΠ°Π»Π½Π°ΡΠ° ΠΌΠ°ΡΠΈΠ½Π° ΠΈ Π°ΠΊΠΎ Π½Π΅ Π΅ ΡΠ°ΠΌ, ΠΈΠ·ΡΠ΅Π³Π»Π΅ΡΠ΅ Π³ΠΎ ΠΎΡΠΠΎΠΊΠ΅Ρ ΡΠ΅Π½ΡΡΡ . ΠΠΊΠΎ ΠΈΠΌΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΡΠΎ Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ; - ΡΡΠ·Π΄Π°Π²Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ: ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π±ΡΠ΄Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΎ, Π΄ΠΎΠΊΠ΅ΡΡΡ Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°, Π·Π° Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ;
- ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈ ΠΌΠΎΠ½ΡΠΈΡΠ° Π½ΠΈΠ²ΠΎΡΠΎ ΡΠ°ΠΌΠΎ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅: ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡΡ ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π° Π²ΡΠ² ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΠ΅ Π΄ΠΎΠ±Π°Π²Ρ ΠΊΡΠΌ Π½ΠΈΠ²ΠΎΡΠΎ ΡΠ°ΠΌΠΎ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅;
- ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ° ΠΌΡΠ΅ΠΆΠ°ΡΠ°/ΠΌΠΎΡΡΠ°: ΡΡΠ·Π΄Π°Π²Π° ΠΌΡΠ΅ΠΆΠΎΠ² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° Π΄ΠΎΠΊΠ΅ΡΠ° Π΄Π° ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠΈΡΠ° Ρ Ρ ΠΎΡΡ ΠΌΠ°ΡΠΈΠ½Π°ΡΠ°;
- ΠΠ°Π΄Π°Π²Π°Π½Π΅ Π½Π° IP Π°Π΄ΡΠ΅Ρ: Π½Π°ΠΌΠΈΡΠ° ΠΈ Π·Π°Π΄Π°Π²Π° Π°Π΄ΡΠ΅ΡΠ°;
- Π‘ΡΠ°ΡΡΠΈΡΠ° ΠΏΠΎΡΠΎΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅Ρ: ΡΡΠ°ΡΡΠΈΡΠ° Π²Π°ΡΠ΅ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅;
- ΠΠ±ΡΠ°Π±ΠΎΡΠ²Π° ΠΈ ΠΏΡΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π° ΠΈΠ·Ρ ΠΎΠ΄ ΠΎΡ Π²Π°ΡΠ΅ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅: ΡΠ²ΡΡΠ·Π²Π° ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡ Π²Ρ ΠΎΠ΄, ΠΈΠ·Ρ ΠΎΠ΄ ΠΈ ΠΏΠΎΡΠΎΠΊ ΠΎΡ Π³ΡΠ΅ΡΠΊΠΈ Π½Π° Π²Π°ΡΠ΅ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠ°ΠΊΠ° ΡΠ΅ Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°ΡΠ΅ ΠΊΠ°ΠΊ ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Ρ Π²Π°ΡΠ΅ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
ΠΠ΅ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ ΡΠ°Π±ΠΎΡΠ΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠΏΡΠ°Π²Π»ΡΠ²Π°ΡΠ΅ Π²Π°ΡΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, Π΄Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²Π°ΡΠ΅ Ρ Π²Π°ΡΠ΅ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠΎΠ³Π°ΡΠΎ ΡΠ΅ΡΠΈΡΠ΅ Π΄Π° ΡΠΏΡΠ΅ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, ΠΈΠ·ΡΡΠΈΠΉΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°.
ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ
Docker Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Go ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½ΡΠΊΠΎΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux, Π·Π° Π΄Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ° Π³ΠΎΡΠ½Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ.
ΠΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΎΡ ΠΈΠΌΠ΅Π½Π°
Docker ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΡ namespaces
Π·Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ΠΈ ΡΠ°Π±ΠΎΡΠ½ΠΈ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π°, ΠΊΠΎΠΈΡΠΎ Π½Π°ΡΠΈΡΠ°ΠΌΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ. ΠΠΎΠ³Π°ΡΠΎ ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, docker ΡΡΠ·Π΄Π°Π²Π° Π½Π°Π±ΠΎΡ ΠΎΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΎΡ ΠΈΠΌΠ΅Π½Π° Π·Π° ΡΠΎΠ·ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ.
Π’ΠΎΠ²Π° ΡΡΠ·Π΄Π°Π²Π° ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ ΡΠ»ΠΎΠΉ, ΠΊΠ°ΡΠΎ Π²ΡΠ΅ΠΊΠΈ Π°ΡΠΏΠ΅ΠΊΡ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΡΠ°Π±ΠΎΡΠΈ Π² ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΎΡΠΎ ΡΠΈ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΎΡ ΠΈΠΌΠ΅Π½Π° ΠΈ Π½ΡΠΌΠ° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π²ΡΠ½ΡΠ½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°.
Π‘ΠΏΠΈΡΡΠΊ Π½Π° Π½ΡΠΊΠΎΠΈ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΎΡ ΠΈΠΌΠ΅Π½Π°, ΠΊΠΎΠΈΡΠΎ Docker ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°:
- pid: ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ°;
- Π½Π΅ΡΠΎ: Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ;
- ipc: Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅ΡΡΡΡΠΈΡΠ΅ Π½Π° IPC. (ICP: ΠΠ΅ΠΆΠ΄ΡΠΏΡΠΎΡΠ΅ΡΠ½Π° ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡ);
- mnt: Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠΎΡΠΊΠΈ Π½Π° ΠΌΠΎΠ½ΡΠΈΡΠ°Π½Π΅;
- utc: Π·Π° ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΄ΡΠΎΡΠΎ ΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π½Π° Π²Π΅ΡΡΠΈΡ (UTC: Unix ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΡΠΏΠΎΠ΄Π΅Π»ΡΠ½Π΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅).
ΠΠΎΠ½ΡΡΠΎΠ»Π½ΠΈ Π³ΡΡΠΏΠΈ
Docker ΡΡΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΡ cgroups
ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π½ΠΈ Π³ΡΡΠΏΠΈ. ΠΠ»ΡΡΡΡ ΠΊΡΠΌ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡ Π΅ Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΠ΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΠ°ΠΌΠΎ ΡΠ΅ΡΡΡΡΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΠ΅. Π’ΠΎΠ²Π° Π³Π°ΡΠ°Π½ΡΠΈΡΠ°, ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ ΡΠ΅ Π±ΡΠ΄Π°Ρ Π΄ΠΎΠ±ΡΠΈ ΡΡΡΠ΅Π΄ΠΈ. ΠΠΎΠ½ΡΡΠΎΠ»Π½ΠΈΡΠ΅ Π³ΡΡΠΏΠΈ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π΄Π° ΡΠΏΠΎΠ΄Π΅Π»ΡΡΠ΅ Π½Π°Π»ΠΈΡΠ½ΠΈΡΠ΅ Ρ
Π°ΡΠ΄ΡΠ΅ΡΠ½ΠΈ ΡΠ΅ΡΡΡΡΠΈ ΠΈ, Π°ΠΊΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ, Π΄Π° Π·Π°Π΄Π°Π²Π°ΡΠ΅ Π»ΠΈΠΌΠΈΡΠΈ ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅ΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΈΡ ΠΎΠ±Π΅ΠΌ ΠΏΠ°ΠΌΠ΅Ρ Π·Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°.
ΠΠ±Π΅Π΄ΠΈΠ½Π΅Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ°
Union File Sysem ΠΈΠ»ΠΈ UnionFS Π΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΊΠΎΡΡΠΎ ΡΠ°Π±ΠΎΡΠΈ ΡΡΠ΅Π· ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ»ΠΎΠ΅Π²Π΅, ΠΊΠΎΠ΅ΡΠΎ Ρ ΠΏΡΠ°Π²ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅ΠΊΠ° ΠΈ Π±ΡΡΠ·Π°. Docker ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° UnionFS, Π·Π° Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ Π±Π»ΠΎΠΊΠΎΠ²Π΅ΡΠ΅, ΠΎΡ ΠΊΠΎΠΈΡΠΎ Π΅ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡΡ. Docker ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠ° Π½Π° UnionFS, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ: AUFS, btrfs, vfs ΠΈ DeviceMapper.
ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΈ ΡΠΎΡΠΌΠ°ΡΠΈ
Docker ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ° ΡΠ΅Π·ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π² ΠΎΠ±Π²ΠΈΠ²ΠΊΠ°, ΠΊΠΎΡΡΠΎ Π½Π°ΡΠΈΡΠ°ΠΌΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅Π½ ΡΠΎΡΠΌΠ°Ρ. Π€ΠΎΡΠΌΠ°ΡΡΡ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΡΠ΅ ΠΈΠ·Π²ΠΈΠΊΠ²Π° libcontainer
. Docker ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅Π½ ΡΠΎΡΠΌΠ°Ρ Π² Linux Ρ ΠΏΠΎΠΌΠΎΡΡΠ°
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com