Π©ΠΎ ΡΠ°ΠΊΠ΅ Docker Ρ ΡΠΊ Π²ΡΠ½ ΠΏΡΠ°ΡΡΡ
Docker – ΡΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π· Π²ΡΠ΄ΠΊΡΠΈΡΠΈΠΌ Π²ΠΈΡ ΡΠ΄Π½ΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΡΠΊΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΡΡ ΡΠΎΠ·Π³ΠΎΡΡΠ°Π½Π½Ρ, ΠΌΠ°ΡΡΡΠ°Π±ΡΠ²Π°Π½Π½Ρ ΡΠ° ΡΠΏΡΠ°Π²Π»ΡΠ½Π½Ρ Π΄ΠΎΠ΄Π°ΡΠΊΠ°ΠΌΠΈ Π² Π»Π΅Π³ΠΊΠΈΡ , ΠΏΠΎΡΡΠ°ΡΠΈΠ²Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°Ρ . ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΡΠ½ΠΊΠ°ΠΏΡΡΠ»ΡΡΡΡ Π΄ΠΎΠ΄Π°ΡΠΎΠΊ ΡΠ° ΠΉΠΎΠ³ΠΎ Π·Π°Π»Π΅ΠΆΠ½ΠΎΡΡΡ, Π·Π°Π±Π΅Π·ΠΏΠ΅ΡΡΡΡΠΈ ΠΉΠΎΠ³ΠΎ ΠΏΠΎΡΠ»ΡΠ΄ΠΎΠ²Π½Ρ ΡΠΎΠ±ΠΎΡΡ Π² ΡΡΠ·Π½ΠΈΡ ΡΠ΅ΡΠ΅Π΄ΠΎΠ²ΠΈΡΠ°Ρ , Π²ΡΠ΄ ΡΠΎΠ·ΡΠΎΠ±ΠΊΠΈ Π΄ΠΎ Π²ΠΈΡΠΎΠ±Π½ΠΈΡΡΠ²Π°. Π£ ΡΡΠΉ ΡΡΠ°ΡΡΡ ΠΌΠΈ ΡΠΎΠ·Π³Π»ΡΠ½Π΅ΠΌΠΎ, ΡΠΎ ΡΠ°ΠΊΠ΅ Docker, ΡΠΊ Π²ΡΠ½ ΠΏΡΠ°ΡΡΡ ΡΠ° ΡΠΊΡ ΠΉΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Π²Π°Π³ΠΈ.
1. Π ΠΎΠ·ΡΠΌΡΠ½Π½Ρ Docker
Docker ΠΏΡΠΈΠ·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½Π½Ρ ΡΠΎΠ·Π³ΠΎΡΡΠ°Π½Π½Ρ Π΄ΠΎΠ΄Π°ΡΠΊΡΠ² Π·Π° Π΄ΠΎΠΏΠΎΠΌΠΎΠ³ΠΎΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΠ·Π°ΡΡΡ. ΠΠ° Π²ΡΠ΄ΠΌΡΠ½Ρ Π²ΡΠ΄ ΡΡΠ°Π΄ΠΈΡΡΠΉΠ½ΠΈΡ Π²ΡΡΡΡΠ°Π»ΡΠ½ΠΈΡ ΠΌΠ°ΡΠΈΠ½ (ΠΠ), ΡΠΊΡ Π²ΠΈΠΌΠ°Π³Π°ΡΡΡ ΠΏΠΎΠ²Π½ΠΎΡΡΠ½Π½ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΡΠΉΠ½ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΠΈ Π΄Π»Ρ ΠΊΠΎΠΆΠ½ΠΎΠ³ΠΎ Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°, ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Docker Π²ΠΈΠΊΠΎΡΠΈΡΡΠΎΠ²ΡΡΡΡ ΡΠ΄ΡΠΎ Ρ ΠΎΡΡΠΎΠ²ΠΎΡ ΠΠ‘, Π·Π±Π΅ΡΡΠ³Π°ΡΡΠΈ ΠΏΡΠΈ ΡΡΠΎΠΌΡ ΡΠ·ΠΎΠ»ΡΡΡΡ. Π¦Π΅ Π΄ΠΎΠ·Π²ΠΎΠ»ΡΡ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡΠ΅ Π²ΠΈΠΊΠΎΡΠΈΡΡΠΎΠ²ΡΠ²Π°ΡΠΈ ΡΠ΅ΡΡΡΡΠΈ Ρ ΡΠ²ΠΈΠ΄ΡΠ΅ ΡΠΎΠ·Π³ΠΎΡΡΠ°ΡΠΈ Π΄ΠΎΠ΄Π°ΡΠΊΠΈ.
2. ΠΠ»ΡΡΠΎΠ²Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Docker
2.1. ΠΠ²ΠΈΠΆΠΎΠΊ Docker
Docker Engine – ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΡΠΊΠΈΠΉ Π·Π°ΠΏΡΡΠΊΠ°Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΡΠ° ΠΊΠ΅ΡΡΡ Π½ΠΈΠΌΠΈ. ΠΡΠ½ Π²ΠΊΠ»ΡΡΠ°Ρ Π² ΡΠ΅Π±Π΅
- Docker Daemon: Π€ΠΎΠ½ΠΎΠ²Π° ΡΠ»ΡΠΆΠ±Π°, ΡΠΊΠ° ΠΊΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌΠΈ Docker.
- Docker CLI (ΡΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ ΡΡΠ΄ΠΊΠ°): ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ ΡΡΠ΄ΠΊΠ°, ΡΠΊΠΈΠΉ Π΄ΠΎΠ·Π²ΠΎΠ»ΡΡ ΠΊΠΎΡΠΈΡΡΡΠ²Π°ΡΠ°ΠΌ Π²Π·Π°ΡΠΌΠΎΠ΄ΡΡΡΠΈ Π· Docker Daemon Π΄Π»Ρ ΡΡΠ²ΠΎΡΠ΅Π½Π½Ρ, ΠΊΠ΅ΡΡΠ²Π°Π½Π½Ρ ΡΠ° Π·Π°ΠΏΡΡΠΊΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡΠ².
2.2. ΠΠ±ΡΠ°Π·ΠΈ Docker
ΠΠ±ΡΠ°Π·ΠΈ Π΄ΠΎΠΊΠ΅ΡΡΠ² – ΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½ΠΈ, Π΄ΠΎΡΡΡΠΏΠ½Ρ Π»ΠΈΡΠ΅ Π΄Π»Ρ ΡΠΈΡΠ°Π½Π½Ρ, ΡΠΊΡ Π²ΠΈΠΊΠΎΡΠΈΡΡΠΎΠ²ΡΡΡΡΡΡ Π΄Π»Ρ ΡΡΠ²ΠΎΡΠ΅Π½Π½Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡΠ². ΠΠ±ΡΠ°Π· ΠΌΡΡΡΠΈΡΡ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΡΠ΄Π½Π΅ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ, Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈ ΠΊΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ, Π±ΡΠ±Π»ΡΠΎΡΠ΅ΠΊΠΈ, Π·Π°Π»Π΅ΠΆΠ½ΠΎΡΡΡ ΡΠ° Π·ΠΌΡΠ½Π½Ρ ΠΎΡΠΎΡΠ΅Π½Π½Ρ. ΠΠ±ΡΠ°Π·ΠΈ Π·Π±ΠΈΡΠ°ΡΡΡΡΡ Π· Docker-ΡΠ°ΠΉΠ»Ρ, ΡΠΊΠΈΠΉ ΠΌΡΡΡΠΈΡΡ ΡΠ½ΡΡΡΡΠΊΡΡΡ Π·Ρ Π·Π±ΠΈΡΠ°Π½Π½Ρ ΠΎΠ±ΡΠ°Π·Ρ.
2.3. Docker Hub
Docker Hub – ΡΠ΅ Ρ ΠΌΠ°ΡΠ½ΠΈΠΉ ΡΠ΅ΡΡΡΡ, ΡΠΊΠΈΠΉ Π΄ΠΎΠ·Π²ΠΎΠ»ΡΡ ΠΊΠΎΡΠΈΡΡΡΠ²Π°ΡΠ°ΠΌ Π΄ΡΠ»ΠΈΡΠΈΡΡ Ρ ΠΏΠΎΡΠΈΡΡΠ²Π°ΡΠΈ ΠΎΠ±ΡΠ°Π·ΠΈ Docker. ΠΡΠ½ Π½Π°Π΄Π°Ρ ΡΡ ΠΎΠ²ΠΈΡΠ΅ Π΄Π»Ρ Π·Π±Π΅ΡΡΠ³Π°Π½Π½Ρ ΡΠ° ΠΊΠ΅ΡΡΠ²Π°Π½Π½Ρ ΠΎΠ±ΡΠ°Π·Π°ΠΌΠΈ, ΡΠΎ Π΄ΠΎΠ·Π²ΠΎΠ»ΡΡ Π»Π΅Π³ΠΊΠΎ Π²ΠΈΡΡΠ³ΡΠ²Π°ΡΠΈ ΠΎΠ±ΡΠ°Π·ΠΈ Π· ΡΠ΅ΡΡΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π³ΠΎΡΡΠ°Π½Π½Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌ.
3. Π―ΠΊ ΠΏΡΠ°ΡΡΡ Docker
ΠΡΠΎΠΊ 1: Π‘ΡΠ²ΠΎΡΠ΅Π½Π½Ρ Π΄ΠΎΠΊΠ΅Ρ-ΡΠ°ΠΉΠ»Ρ
Docker-ΡΠ°ΠΉΠ» – ΡΠ΅ ΡΠΊΡΠΈΠΏΡ, ΡΠΊΠΈΠΉ ΠΌΡΡΡΠΈΡΡ ΡΠ½ΡΡΡΡΠΊΡΡΡ ΠΏΡΠΎ ΡΠ΅, ΡΠΊ ΡΡΠ²ΠΎΡΠΈΡΠΈ ΠΎΠ±ΡΠ°Π· Docker. ΠΠ°ΠΏΡΠΈΠΊΠ»Π°Π΄, ΠΏΡΠΎΡΡΠΈΠΉ Docker-ΡΠ°ΠΉΠ» Π΄Π»Ρ ΡΡΠ²ΠΎΡΠ΅Π½Π½Ρ ΠΎΠ±ΡΠ°Π·Ρ Π²Π΅Π±-Π΄ΠΎΠ΄Π°ΡΠΊΡ ΠΌΠΎΠΆΠ΅ Π²ΠΈΠ³Π»ΡΠ΄Π°ΡΠΈ ΡΠ°ΠΊ:
ΠΡΠΎΠΊ 2: Π‘ΡΠ²ΠΎΡΠ΅Π½Π½Ρ ΠΎΠ±ΡΠ°Π·Ρ Docker
ΠΡΡΠ»Ρ ΡΡΠ²ΠΎΡΠ΅Π½Π½Ρ Docker-ΡΠ°ΠΉΠ»Ρ Π²ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΠ²ΠΎΡΠΈΡΠΈ ΠΎΠ±ΡΠ°Π· Docker Π·Π° Π΄ΠΎΠΏΠΎΠΌΠΎΠ³ΠΎΡ Π½Π°ΡΡΡΠΏΠ½ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ:
Π¦Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²ΠΊΠ°Π·ΡΡ Docker Π·ΡΠ±ΡΠ°ΡΠΈ ΠΎΠ±ΡΠ°Π· Π· Π½Π°Π·Π²ΠΎΡ my-app, Π²ΠΈΠΊΠΎΡΠΈΡΡΠΎΠ²ΡΡΡΠΈ Dockerfile Ρ ΠΏΠΎΡΠΎΡΠ½ΠΎΠΌΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ·Ρ.
ΠΡΠΎΠΊ 3: ΠΠ°ΠΏΡΡΠΊ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Docker
ΠΡΡΠ»Ρ ΡΡΠ²ΠΎΡΠ΅Π½Π½Ρ ΠΎΠ±ΡΠ°Π·Ρ Π²ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Ρ ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π·Ρ:
Π¦Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π°ΠΏΡΡΠΊΠ°Ρ Π½ΠΎΠ²ΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π· ΠΎΠ±ΡΠ°Π·Ρ my-app Ρ Π·ΡΡΡΠ°Π²Π»ΡΡ ΠΏΠΎΡΡ 8080 Π½Π° Ρ ΠΎΡΡΡ Π· ΠΏΠΎΡΡΠΎΠΌ 8080 Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ.
4. ΠΠ΅ΡΠ΅Π²Π°Π³ΠΈ Π²ΠΈΠΊΠΎΡΠΈΡΡΠ°Π½Π½Ρ Docker
- ΠΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΡΡΡΡ: ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Docker ΠΌΠΎΠΆΡΡΡ ΠΏΡΠ°ΡΡΠ²Π°ΡΠΈ Π½Π° Π±ΡΠ΄Ρ-ΡΠΊΡΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, Π΄Π΅ Π²ΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Docker, ΡΠΎ ΠΏΠΎΠ»Π΅Π³ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΡΡΠ΅Π½Π½Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌ ΠΌΡΠΆ ΡΠ΅ΡΠ΅Π΄ΠΎΠ²ΠΈΡΠ°ΠΌΠΈ.
- Π£Π·Π³ΠΎΠ΄ΠΆΠ΅Π½ΡΡΡΡ: Docker Π³Π°ΡΠ°Π½ΡΡΡ, ΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ ΠΏΡΠ°ΡΡΡΡΡ ΠΎΠ΄Π½Π°ΠΊΠΎΠ²ΠΎ Ρ ΡΡΠ·Π½ΠΈΡ ΡΠ΅ΡΠ΅Π΄ΠΎΠ²ΠΈΡΠ°Ρ , Π·ΠΌΠ΅Π½ΡΡΡΡΠΈ ΠΊΡΠ»ΡΠΊΡΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΠΏΠΎΠ²’ΡΠ·Π°Π½ΠΈΡ Π· ΡΠΈΠΌ, ΡΠΎ “ΡΠ΅ ΠΏΡΠ°ΡΡΡ Π½Π° ΠΌΠΎΡΠΉ ΠΌΠ°ΡΠΈΠ½Ρ”.
- ΠΠ·ΠΎΠ»ΡΡΡΡ: ΠΠΎΠΆΠ΅Π½ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΏΡΠ°ΡΡΡ Ρ Π²Π»Π°ΡΠ½ΠΎΠΌΡ ΡΠ΅ΡΠ΅Π΄ΠΎΠ²ΠΈΡΡ, ΡΠΎ Π΄ΠΎΠ·Π²ΠΎΠ»ΡΡ Π΄Π΅ΠΊΡΠ»ΡΠΊΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΠΌ ΡΠΏΡΠ²ΡΡΠ½ΡΠ²Π°ΡΠΈ Π½Π° ΠΎΠ΄Π½ΠΎΠΌΡ Ρ ΠΎΡΡΡ Π±Π΅Π· ΠΊΠΎΠ½ΡΠ»ΡΠΊΡΡΠ².
- ΠΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡΡΡ Π²ΠΈΠΊΠΎΡΠΈΡΡΠ°Π½Π½Ρ ΡΠ΅ΡΡΡΡΡΠ²: ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π»Π΅Π³ΠΊΡ ΡΠ° Π²ΠΈΠΊΠΎΡΠΈΡΡΠΎΠ²ΡΡΡΡ ΡΠ΄ΡΠΎ Ρ ΠΎΡΡΠΎΠ²ΠΎΡ ΠΠ‘, ΡΠΎ ΠΏΡΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ Π΄ΠΎ ΠΊΡΠ°ΡΠΎΠ³ΠΎ Π²ΠΈΠΊΠΎΡΠΈΡΡΠ°Π½Π½Ρ ΡΠ΅ΡΡΡΡΡΠ² Ρ ΠΏΠΎΡΡΠ²Π½ΡΠ½Π½Ρ Π· ΡΡΠ°Π΄ΠΈΡΡΠΉΠ½ΠΈΠΌΠΈ Π²ΡΡΡΡΠ°Π»ΡΠ½ΠΈΠΌΠΈ ΠΌΠ°ΡΠΈΠ½Π°ΠΌΠΈ.
5. ΠΠΈΡΠ½ΠΎΠ²ΠΎΠΊ
Docker – ΡΠ΅ ΠΏΠΎΡΡΠΆΠ½ΠΈΠΉ ΡΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΠΎΠ·ΡΠΎΠ±Π½ΠΈΠΊΡΠ² ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡ Π°Π΄ΠΌΡΠ½ΡΡΡΡΠ°ΡΠΎΡΡΠ², ΡΠΊΠΈΠΉ ΡΠΏΡΠΎΡΡΡ ΠΏΡΠΎΡΠ΅Ρ ΡΠΎΠ·Π³ΠΎΡΡΠ°Π½Π½Ρ ΡΠ° ΠΊΠ΅ΡΡΠ²Π°Π½Π½Ρ Π΄ΠΎΠ΄Π°ΡΠΊΠ°ΠΌΠΈ. ΠΠΈΠΊΠΎΡΠΈΡΡΠΎΠ²ΡΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ, Docker Π·Π°Π±Π΅Π·ΠΏΠ΅ΡΡΡ ΠΏΠΎΡΠ»ΡΠ΄ΠΎΠ²Π½ΠΈΠΉ ΡΠ° Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΈΠΉ ΡΠΏΠΎΡΡΠ± ΠΏΠ°ΠΊΡΠ²Π°Π½Π½Ρ ΡΠ° Π·Π°ΠΏΡΡΠΊΡ Π΄ΠΎΠ΄Π°ΡΠΊΡΠ² Ρ ΡΡΠ·Π½ΠΈΡ ΡΠ΅ΡΠ΅Π΄ΠΎΠ²ΠΈΡΠ°Ρ . Π ΠΎΠ·ΡΠΌΡΠ½Π½Ρ Docker ΡΠ° ΠΉΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡΠ² ΠΌΠΎΠΆΠ΅ Π·Π½Π°ΡΠ½ΠΎ ΠΏΠΎΠΊΡΠ°ΡΠΈΡΠΈ Π²Π°ΡΡ ΡΠΎΠ±ΠΎΡΡ ΠΏΡΠΎΡΠ΅ΡΠΈ ΡΠΎΠ·ΡΠΎΠ±ΠΊΠΈ ΡΠ° ΡΠΎΠ·Π³ΠΎΡΡΠ°Π½Π½Ρ.
