Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Docker, ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ? ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ
ΠΡΠΎ ΠΠ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΏΡΠΈΠ½ΡΠΈΠΏ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΡΠ°Π²Π½ΠΈΡΡ Ρ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΡΠΌΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌΠΈ. Π’ΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ΄ΡΠΌΠ°ΠΉΡΠ΅, Π²Π΅Π΄Ρ ΠΊΠΎΠ³Π΄Π°-ΡΠΎ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡ Ρ ΠΏΠΎΡ ΠΎΠΆΠΈΠΌΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ:
- ΠΠ°ΠΊ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ·ΠΈΡΡ ΡΠ°Π·Π½ΡΠ΅ (Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠ΅) ΡΠΈΠΏΡ ΡΠΎΠ²Π°ΡΠΎΠ² Π²ΠΌΠ΅ΡΡΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΎΠ΄ΡΠΊΡΡ ΠΏΠΈΡΠ°Π½ΠΈΡ Ρ Ρ ΠΈΠΌΠΈΠΊΠ°ΡΠ°ΠΌΠΈ ΠΈΠ»ΠΈ ΡΡΠ΅ΠΊΠ»ΠΎ Ρ ΠΊΠΈΡΠΏΠΈΡΠΎΠΌ)?
- ΠΠ°ΠΊ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΏΠ°ΠΊΠ΅ΡΡ ΡΠ°Π·Π½ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΠΎΠ΄Π½ΠΈΠΌ ΠΈ ΡΠ΅ΠΌ ΠΆΠ΅ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΡΠΌ ΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ?
Π‘ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² ΡΡΠ°Π»ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ·ΠΈΡΡ Π²ΠΌΠ΅ΡΡΠ΅ ΠΊΠΈΡΠΏΠΈΡΠΈ ΠΈ ΡΡΠ΅ΠΊΠ»ΠΎ, Ρ ΠΈΠΌΠΈΠΊΠ°ΡΡ ΠΈ Π΅Π΄Ρ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅. ΠΡΡΠ· ΡΠ°Π·Π½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΏΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ/Π²ΡΠ³ΡΡΠΆΠ°ΡΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ ΡΠ΅ΠΌ ΠΆΠ΅ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΡΠΌ ΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ.
ΠΠΎ Π²Π΅ΡΠ½Π΅ΠΌΡΡ ΠΆΠ΅ ΠΊ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌ. ΠΠΎΠ³Π΄Π° Π²Ρ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΊΠΎΠ΄ Π²ΠΌΠ΅ΡΡΠ΅ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ Π΅Π³ΠΎ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠΌΠΈ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΡΠ΅ΡΠ²Π΅Ρ, Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ Ρ. Π΄. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π² ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° Π²Π°ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅, Π½ΠΎ ΠΎΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π²ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ΅ΡΠ°Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π· ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΠ ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Docker Π΄Π»Ρ ΡΠ°ΠΉΠ½ΠΈΠΊΠΎΠ²
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠ° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΡΠΎ Docker Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ , Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ ΡΡΠ°Π·Ρ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΡΡΠ°ΡΡΡ ΠΏΡΠΎ Π·Π°ΠΏΡΡΠΊ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°, Π²Ρ ΠΏΠΎΠΉΠΌΠ΅ΡΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ½ΠΎΠ²Ρ Docker, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π·Π΄Π΅ΡΡ Π²Π°ΠΌ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡ. Π’Π°ΠΌ ΡΠ°ΡΡΠΊΠ°Π·Π°Π½ΠΎ ΠΊΠ°ΠΊ Π²ΡΡ Π΄Π΅Π»Π°ΡΡ Π²ΡΡΡΠ½ΡΡ, Π° Π·Π΄Π΅ΡΡ ΠΌΡ ΡΠΆΠ΅ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΊΠ°ΠΊ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ.
1. Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° docker-compose
ΠΡΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΅ΡΡ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π°, Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π°Π΄ΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠΊΠ°ΡΠ°ΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» ΠΈΠ· ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ²:
sudo curl -L «https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)» -o /usr/local/bin/docker-compose
Π Π΄Π°ΡΡ Π΅ΠΌΡ ΠΏΡΠ°Π²Π° Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅:
sudo chmod +x /usr/local/bin/docker-compose
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π΅Ρ Π²Π΅ΡΡΠΈΡ:
2. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°
ΠΡΠ»ΠΈ Π²Ρ ΡΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ docker, ΡΠΎ, Π½Π°Π²Π΅ΡΠ½ΠΎΠ΅, Π·Π°ΠΌΠ΅ΡΠ°Π»ΠΈ, ΡΡΠΎ Π² ΠΏΠ°ΠΏΠΊΠ΅ Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ Π»Π΅ΠΆΠΈΡ ΡΠ°ΠΉΠ» ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ docker-compose.yaml. ΠΠΌΠ΅Π½Π½ΠΎ Π² ΡΡΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°Π΄ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΏΠΎΡΠΎΠΌ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ ΡΠΎΠ·Π΄Π°Π½Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ docker-compose. Π€Π°ΠΉΠ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ YAML ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠ°ΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅:
ΠΠ΅ΡΡΠΈΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π²Π΅ΡΡΠΈΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° ΡΠ°ΠΉΠ»Π°, Π² ΡΠ°Π·Π½ΡΡ Π²Π΅ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠ°Π·Π½ΡΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π°, ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π΄Π»Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ. ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π΅ΡΡΠΈΡ 3.5. ΠΠ°Π»Π΅Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΡΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° (volumes), ΡΠ΅ΡΠΈ (networks) ΠΈ ΡΠ°ΠΌΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ YAML ΠΏΠΎΡ ΠΎΠΆ Π½Π° JSON, Π·Π΄Π΅ΡΡ ΡΠΎΠΆΠ΅ Π΅ΡΡΡ ΠΏΠ°ΡΡ ΠΊΠ»ΡΡ: Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅ΠΌ, ΡΠΎΠ»ΡΠΊΠΎ ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΠΎΠΎΠ±ΡΠ΅ Π½ΡΠ»Π΅Π²ΡΠΌ, ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠ»ΡΡΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²Π° Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΡΡΡΡΠΎΡΠΊΠΈ «-«. ΠΠΎ Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ JSON, Π·Π΄Π΅ΡΡ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½Ρ ΠΎΡΡΡΡΠΏΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ ΡΠ΅ΡΡΠΉΡΠ΅ ΠΈΡ .
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΠ°ΠΏΠΊΡ losst-docker ΠΈ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π² Π½Π΅ΠΉ ΡΠ°ΠΉΠ» docker-compose.yaml:
version: ‘3.5’
services:
3. ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ²
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΏΡΠ½ΠΊΡΠ° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°:
ΠΠ΄Π΅ΡΡ Π½Π°ΠΌ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π½Π°Π΄ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΈΠΌΡ Π±ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±ΡΠ°Π·, Π½Π° ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½. Π§Π΅ΡΠ΅Π· Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π²Π΅ΡΡΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°. ΠΠ΅ΡΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° Dockerhub ΠΎΠ½ΠΈ ΡΠ°ΠΌ ΠΎΡΠΌΠ΅ΡΠ΅Π½Ρ ΠΊΠ°ΠΊ tags. ΠΡΠ»ΠΈ Π²Π΅ΡΡΠΈΡ Π½Π΅ ΡΠΊΠ°Π·Π°Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ latest, ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π΄Π»Ρ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ° Nginx:
Π£ΠΆΠ΅ ΠΈΠΌΠ΅Ρ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ.
4. ΠΠ°ΠΏΡΡΠΊ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ²
ΠΠΎΠ³Π΄Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° docker Π·Π°Π²Π΅ΡΡΠ΅Π½Π°, Π½Π°Π΄ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ. Π§ΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ Π³ΡΡΠΏΠΏΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ², Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΡΡ Π² docker-compose.yaml Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π² ΠΏΠ°ΠΏΠΊΡ, Π³Π΄Π΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΡΠΎΡ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ°ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ docker-compose up. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Π±ΡΠ΄ΡΡ Π·Π°ΠΏΡΡΠ΅Π½Ρ, Π²ΡΠ΅ ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΈ Π²ΡΠ²ΠΎΠ΄Π° Π±ΡΠ΄ΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Ρ Π² ΠΎΠ΄ΠΈΠ½ ΠΈ Π²Π°ΠΌ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π». Π§ΡΠΎΠ±Ρ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π½Π°ΠΆΠ°ΡΡ Ctrl+C. ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΎΠΏΡΠΈΡ -d:
docker-compose up -d
ΠΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ, Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΠ΅ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ stop:
ΠΠΎΠΌΠ°Π½Π΄Π° down Π½Π΅ ΠΏΡΠΎΡΡΠΎ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π²ΡΠ΅ Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ, Π½ΠΎ ΠΈ ΡΠ΄Π°Π»ΡΠ΅Ρ ΠΈΡ :
ΠΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΏΠΎΠΊΠ° ΡΡΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, ΠΌΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ Π΅Π³ΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΡ.
5. ΠΠΎΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°
ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π½ΠΎ ΡΠΎΠ»ΠΊΡ ΠΏΠΎΠΊΠ° Π½Π°ΠΌ ΠΎΡ Π½Π΅Π³ΠΎ ΠΌΠ°Π»ΠΎ. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ docker ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΠ±ΡΠΎΡΠΈΡΡ ΠΏΠΎΡΡ 80 ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π² ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊ Π½Π΅ΠΌΡ Π΄ΠΎΡΡΡΠΏ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ ports. Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΠ°ΠΊΠΎΠΉ:
ports:
— Π²Π½Π΅ΡΠ½ΠΈΠΉ_ΠΏΠΎΡΡ : Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΠΏΠΎΡΡ
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΎΠ±ΡΠΎΡΠΈΠΌ ΠΏΠΎΡΡ 80 ΠΊΠ°ΠΊ 8094:
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ ΠΈ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ, ΡΠΎΠΎΠ±ΡΠ°ΡΡΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Nginx ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ http://localhost:8094:
ΠΠΎ ΡΡΠΎ Π²ΡΠ΅ Π΅ΡΡ Π½Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡ ΡΠ°ΠΌ ΡΠ²ΠΎΠΈ ΡΠ°ΠΉΠ»Ρ. Π‘Π΅ΠΉΡΠ°Ρ ΡΡΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΠΌ.
6. ΠΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΏΠΎΠΊ
ΠΠ»Ρ ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡ ΠΈΠ»ΠΈ Π²Π½Π΅ΡΠ½ΠΈΡ ΠΏΠ°ΠΏΠΎΠΊ Ρ ΠΎΡΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠ½ΠΊΡ volumes. Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆ Π½Π° ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠΎΡΡΠ°ΠΌΠΈ:
volumes:
— /ΠΏΡΡΡ/ΠΊ/Π²Π½Π΅ΡΠ½Π΅ΠΉ/ΠΏΠ°ΠΏΠΊΠ΅ : /ΠΏΡΡΡ/ΠΊ/Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ/ΠΏΠ°ΠΏΠΊΠ΅
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΏΠ°ΠΏΠΊΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ°ΠΉΠ» index.html ΠΈ ΡΠΌΠΎΠ½ΡΠΈΡΡΠ΅ΠΌ ΡΡΡ ΠΏΠ°ΠΏΠΊΡ Π²ΠΌΠ΅ΡΡΠΎ ΠΏΠ°ΠΏΠΊΠΈ /usr/share/nginx/html/ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°:
ΠΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΡΠΆΠ΅ ΡΠ²ΠΎΡ ΡΡΡΠ°Π½ΠΈΡΡ. ΠΡΠΎ ΠΎΡΠ΅Π½Ρ ΠΌΠΎΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ±ΡΠ°ΡΡΠ²Π°ΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π²ΡΡ, Π½Π°ΡΠΈΠ½Π°Ρ ΠΎΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΎΠ² ΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ. ΠΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ.
7. ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡ
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΏΠ°ΠΏΠΊΠΈ, Π½ΠΎ ΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°, ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ Π² docker. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΠ½Π°ΡΠ°Π»Π° Π½Π°Π΄ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π² Π³Π»Π°Π²Π½ΡΡ ΡΠ΅ΠΊΡΠΈΡ volumes. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ losst-vl:
ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Ρ Π²Π΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ , Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, MySQL. ΠΠΎΠ±Π°Π²ΠΈΠΌ Π΅ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π΄Π»Ρ ΡΡΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² Π½Π΅Π³ΠΎ Π½Π°ΡΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅. Π₯ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΊΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π²Π½Π΅ΡΠ½ΡΡ ΠΏΠ°ΠΏΠΊΠ°, ΡΠΎΠ»ΡΠΊΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΠΏΠ°ΠΏΠΊΠΈ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°:
ΠΠ΄Π΅ΡΡ ΠΌΡ Π΅ΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΡΠ½ΠΊΡ environment, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π·Π°Π΄Π°Π»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°. ΠΠ½ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ, Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ ΠΈΠΌΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ root, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ Π½Π΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ.
8. ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ΅ΡΠΈ
ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ. Π£ Π½Π°Ρ ΡΠΆΠ΅ Π΅ΡΡΡ Nginx ΠΈ MySQL, ΠΈΠΌ ΠΏΠΎΠΊΠ° Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ Π΄ΡΡΠ³ ΠΊ Π΄ΡΡΠ³Ρ, Π½ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Ρ Π½Π°Ρ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π΄Π»Ρ PhpMyAdmin, ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π½Π°Π΄ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ MariaDB ΡΠΈΡΡΠ°ΡΠΈΡ ΠΏΠΎΠΌΠ΅Π½ΡΠ΅ΡΡΡ. ΠΠ»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΠΈ, ΠΎΠ½ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ ΠΏΠΎΡ ΠΎΠΆΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π½Π° Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°. Π‘Π½Π°ΡΠ°Π»Π° Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ΅ΡΡ Π² Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΡΠ΅ΠΊΡΠΈΡ networks:
ΠΠ°ΡΠ΅ΠΌ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΡΠΎΠΉ ΡΠ΅ΡΠΈ, Π½Π°Π΄ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ΅ΡΡ Π² ΡΠ°Π·Π΄Π΅Π» networks.
ΠΠ°Π»Π΅Π΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Π±ΡΠ΄ΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΏΠΎ ΡΠ΅ΡΠΈ ΠΏΠΎ ΠΈΡ ΠΈΠΌΠ΅Π½ΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄ΠΎΠ±Π°Π²ΠΈΠΌ PhpMyAdmin ΠΈ Π΄Π°Π΄ΠΈΠΌ Π΅ΠΌΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ :
ΠΠ΄Π΅ΡΡ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ PMA_HOST ΠΌΡ ΡΡΡΠ»Π°Π΅ΠΌΡΡ Π½Π° Ρ ΠΎΡΡ docker-mariadb, ΠΊΠΎΡΠΎΡΡΠΉ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΉ ΡΠ΅ΡΠΈ ΡΡΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² Π΄ΠΎΡΡΡΠΏΠ΅Π½. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅ docker-mariadb, Π½Π°Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Ρ PhpMyAdmin Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΊΠ°ΠΊ docker-phpmyadmin. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΊΡΡΡΡ Π°Π΄ΡΠ΅Ρ http://localhost:8095 ΠΈ Π°Π²ΡΠΎΡΠΈΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΡΠΎ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ:
9. ΠΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°
ΠΡΠΎ ΡΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ Π²Π΅ΡΠΈ, Π½ΠΎ Π·Π°ΡΠΎ Π²Ρ ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ΡΡ Ρ Docker Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅. Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ Π±Π΅Π· ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°, ΠΈΠ½ΠΎΠ³Π΄Π° ΡΡΠ΄Π° Π½Π°Π΄ΠΎ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π»ΠΈΠ±ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅, Π΄Π»Ρ ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°Π΅Π² docker-compose ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ²ΠΎΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ². ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π°Π΄ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ» Dockerfile Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ. ΠΠ°Π²Π°ΠΉΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ php-fpm ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ Π² Π½Π΅Π³ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ php Ρ ΠΏΠΎΠΌΠΎΡΡΡ Dockerfile.
Π‘Π½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΠ°ΠΏΠΊΡ Π΄Π»Ρ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°:
FROM php:7.2.26-fpm-stretch
RUN docker-php-ext-install pdo pdo_mysql pcntl
ΠΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΡΡΠΎΠΌ ΡΠ°ΠΉΠ»Π΅:
- FROM — ΠΎΠ±ΡΠ°Π·, Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡΡΡ Π½Π°Ρ ΠΎΠ±ΡΠ°Π·;
- RUN — Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ ΠΎΠ±ΡΠ°Π·Π°;
- COPY — ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ» Π² ΠΎΠ±ΡΠ°Π·;
- WORKDIR — Π·Π°Π΄Π°ΡΡ ΡΠ°Π±ΠΎΡΡΡ ΠΏΠ°ΠΏΠΊΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π·Π°;
- ENV — Π·Π°Π΄Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ°Π·Π°;
- CMD — Π·Π°Π΄Π°ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΠ±ΡΠ°Π·Π°;
Π’Π΅ΠΏΠ΅ΡΡ Π½Π°Π΄ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΠΎΠ²ΡΡ ΡΠ΅ΠΊΡΠΈΡ Π² Π½Π°Ρ docker-compose.yaml. ΠΠ΄Π΅ΡΡ Π²ΠΌΠ΅ΡΡΠΎ image ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ build, ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π°Π΄ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΏΡΡΡ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅ Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠ΅ΠΉ ΠΎΠ±ΡΠ°Π·Π°:
ΠΠ°Π»ΡΡΠ΅, ΡΠ°Π· ΠΌΡ ΡΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ php-fpm Π½Π°Π΄ΠΎ ΠΏΡΠΈΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°ΡΡ Π΄Π»Ρ Nginx Π²Π΅ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠΈΠ³, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ php-fpm. Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΏΠ°ΠΏΠΊΡ nginx ΠΈ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ Π² Π½Π΅Ρ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ»:
server <
listen 80;
server_name _ !default;
root /var/www/;
add_header X-Frame-Options «SAMEORIGIN»;
add_header X-XSS-Protection «1; mode=block»;
add_header X-Content-Type-Options «nosniff»;
index index.html index.htm index.php;
charset utf-8;
location / <
try_files $uri $uri/ /index.php?$query_string;
>
error_page 404 /index.php;
location
.php$ <
fastcgi_pass docker-php-fpm:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
>
>
ΠΡΡΠ°Π»ΠΎΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΏΡΠ°Π²ΠΈΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ nginx. ΠΡΠΈΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ» ΠΈ ΠΏΠΎΠΏΡΠ°Π²ΠΈΡΡ ΠΏΠ°ΠΏΠΊΡ Π΄Π»Ρ Π²Π΅Π±-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ:
ΠΡΡΠ°Π»ΠΎΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ» index.php ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ:
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ:
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΡΠ°Π·Π°, ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠ΅ΡΠ΅Π΄ Π·Π°ΠΏΡΡΠΊΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ±ΡΠ°Π½ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ°ΠΉΠ»Π° Dockerfile. Π’Π°ΠΊΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ ΡΠΎΠ±ΠΈΡΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ°Π·, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ. Π§ΡΠΎΠ±Ρ ΠΈΡ ΠΏΠ΅ΡΠ΅ΡΠΎΠ±ΡΠ°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΎΠΏΡΠΈΡ —build:
docker-compose up —build
Π’Π΅ΠΏΠ΅ΡΡ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π½Π° Π²Π°ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅, ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , PHP ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΎ Π΄ΡΡΠ³ΠΎΠ³ΠΎ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π»ΡΠ±ΡΠ΅ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΈΠ΅ Π²Π°ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ.
10. ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ docker-compose Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡ ΠΊ Π»ΡΠ±ΠΎΠΌΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ ΠΈΠ· Π³ΡΡΠΏΠΏΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ exec. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅:
docker-compose up -d
Π ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ docker-compose exec. ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΠΌΡΡ ΠΊ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Ρ Nginx:
docker-compose exec docker-nginx /bin/bash
ΠΠ΅ΡΠ΅Π΄ Π²Π°ΠΌΠΈ ΠΎΡΠΊΡΠΎΠ΅ΡΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° Bash ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°. Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π·Π΄Π΅ΡΡ ΡΡΠΎ-ΡΠΎ Π²ΡΡΡΠ½ΡΡ Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π²ΡΡ ΡΠΎΡΡΡΡΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°, Π½ΠΎ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ ΡΠ΅Π³ΠΎ Π»ΠΈΠ±ΠΎ ΡΠ°ΠΊΠ°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ΅Π½Ρ ΠΊΡΡΠ°ΡΠΈ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Dockerfile
ΠΠ° Π΄Π°Π½Π½ΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π΄Π»Ρ Dockerfile Π½ΠΎΠ²ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ, ΡΡΠΎ ΠΌΡ Ρ
ΠΎΡΠΈΠΌ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Dockerfile.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ΠΈ ΠΏΡΡΡΠΎΠΉ ΡΠ°ΠΉΠ» Π² Π½Π΅ΠΉ
ΠΠ°ΡΠ΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ, ΠΊΠ°ΠΊΠΎΠΉ ΠΎΠ±ΡΠ°Π· ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΌΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ Nginx ΠΈ PHP-FPM7, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΠ±ΡΠ°Π· Ubuntu 18.04. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π½Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Supervisord, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ Nginx ΠΈ PHP-FPM 7 ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ.
ΠΡΠΊΡΠΎΠΉΡΠ΅ Dockerfile Π² Π»ΡΠ±ΠΎΠΌ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ vim:
Π Π½Π°ΡΠ°Π»Π΅ ΡΠ°ΠΉΠ»Π° Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΡΡΠΎΠΊΡ Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π·Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ (Ubuntu 18.04):
ΠΠ±Π½ΠΎΠ²ΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Ubuntu Π²Π½ΡΡΡΠΈ Dockerfile ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ βRUNβ.
Π’Π΅ΠΏΠ΅ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠ΅Π±ΡΡΡΡΡ Π΄Π»Ρ Π½Π°ΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ°Π·Π°. ΠΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ apt ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Nginx, PHP-FPM ΠΈ Supervisord ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Ubuntu. ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ RUN:
ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΡ Π½ΡΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ. ΠΡ Π½Π°ΡΡΡΠΎΠΈΠΌ Nginx Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ PHP ΠΏΡΡΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Ρ ΠΎΡΡΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΠΎΠΆΠ½ΠΎ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ sed ΠΈΠ»ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π΅Π³ΠΎ Π½ΠΎΠ²ΡΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Dockerfile COPY.
Π’Π΅ΠΏΠ΅ΡΡ Π½Π°ΡΡΡΠΎΠΈΠΌ Supervisord Π΄Π»Ρ Nginx and PHP-FPM, ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈΠ² ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π½ΠΎΠ²ΡΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ COPY.
Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½ΠΎΠ²ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π΄Π»Ρ sock-ΡΠ°ΠΉΠ»Π° php-fpm ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ Π²Π»Π°Π΄Π΅Π»ΡΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ /var/www/html ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ PHP Π½Π° www-data.
ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΡΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π½ΠΈΠΆΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Π½Π° Ρ ΠΎΡΡ:
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π½ΡΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΠΈ ΠΎΡΠΊΡΡΡΡ ΠΏΠΎΡΡΡ Π΄Π»Ρ HTTP ΠΈ HTTPS. ΠΠ»Ρ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ βCMDβ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ»
start.sh, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Β«supervisordΒ», ΠΈ ΡΠΊΠΎΠΏΠΈΡΡΠ΅ΠΌ Π΅Π³ΠΎ Π² Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ°Π· ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ βCOPYβ.
Π£ΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΠΏΠΎΡΡΡ Π΄Π»Ρ nginx
Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΠΈ Π·Π°ΠΊΡΠΎΠΉΡΠ΅ ΡΠ°ΠΉΠ».
ΠΠΎΡ Π²Π΅ΡΡ ΡΠΊΡΠΈΠΏΡ Dockerfile ΡΠ΅Π»ΠΈΠΊΠΎΠΌ:
Π’Π΅ΠΏΠ΅ΡΡ Π²Π½ΡΡΡΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Ρ Dockerfile ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Ρ ΠΎΡΡΠ° ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Β«defaultΒ», ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ supervisord Β«supervisord.confΒ» ΠΈ ΡΠΊΡΠΈΠΏΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² Β«start.shΒ».
ΠΡΡΠ°Π²ΡΡΠ΅ Π² ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Ρ ΠΎΡΡΠ° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄:
ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Supervisord:
ΠΡΡΠ°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ:
ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ°ΠΉΠ» start.sh.
ΠΡΡΠ°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ:
Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΠΈ Π·Π°ΠΊΡΠΎΠΉΡΠ΅ ΡΠ°ΠΉΠ».
ΠΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ chmod ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ» start.sh ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΌ:
ARG ΠΏΡΠΎΡΠΈΠ² ENV
1) ΠΡΠ°ΡΠΊΠΎΠ΅ ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΠ΅:
ARG Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ±ΠΎΡΠΊΠΈ ΠΎΠ±ΡΠ°Π·Π° Docker (RUN ΠΈ Ρ. Π΄.), Π½ΠΎ Π½Π΅ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ°Π·Π° ΠΈ Π·Π°ΠΏΡΡΠΊΠ° ΠΈΠ· Π½Π΅Π³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² (ENTRYPOINT, CMD).
ΠΠ»Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² Π΄ΠΎΡΡΡΠΏΠ½Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ENV , Π° ΡΠ°ΠΊΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΡΡΠΈΠ»Π΅ RUN Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ±ΠΎΡΠΊΠΈ Docker, Π½Π°ΡΠΈΠ½Π°Ρ ΡΠΎ ΡΡΡΠΎΠΊΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ½ΠΈ Π²Π²Π΅Π΄Π΅Π½Ρ. ΠΡΠ»ΠΈ Π²Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΡΠ΅Π΄Ρ Π² ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ bash (RUN export VARI = 5 &&β¦), ΠΎΠ½Π° Π½Π΅ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅.
2) ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅:
ARG ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½Ρ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠ±ΠΎΡΠΊΠΈ. ΠΠ½ΠΈ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Β«ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡΒ» Π² Dockerfile Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ARG Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ°Π·Π°. ΠΠ°ΠΏΡΡΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ARG. ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌ CMD ΠΈ ENTRYPOINT, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΡΡΠΎ Π³ΠΎΠ²ΠΎΡΡΡ, ΡΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΡΠ»ΠΈ Π²Ρ ΡΠΊΠ°ΠΆΠ΅ΡΠ΅ Dockerfile ΠΎΠΆΠΈΠ΄Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ARG (Π±Π΅Π· Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ), Π½ΠΎ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ±ΠΎΡΠΊΠΈ ΠΎΠ½ΠΈ Π½Π΅ Π±ΡΠ΄ΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Ρ, ΠΏΠΎΡΠ²ΠΈΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅.
ΠΠ΄Π½Π°ΠΊΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ARG ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ°Π·Π°, ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅Π² ΠΈΡΡΠΎΡΠΈΡ Docker Π΄Π»Ρ ΠΎΠ±ΡΠ°Π·Π°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΎΠ½ΠΈ Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π΄Π»Ρ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ .
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ENV ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ±ΠΎΡΠΊΠΈ, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ Π²Π²ΠΎΠ΄ΠΈΡΠ΅ ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ENV. ΠΠ΄Π½Π°ΠΊΠΎ, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ARG, ΠΎΠ½ΠΈ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΈΠ· ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ², Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΡΡ ΠΈΠ· ΡΠΈΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π·Π°. ΠΠ½Π°ΡΠ΅Π½ΠΈΡ ENV ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°, ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΠ± ΡΡΠΎΠΌ Π½ΠΈΠΆΠ΅.
3) Π‘ Π΄ΠΈΠ°Π³ΡΠ΅ΠΌΠΎΠΌ:
ΠΠΎΡ ΡΠΏΡΠΎΡΠ΅Π½Π½ΡΠΉ ΠΎΠ±Π·ΠΎΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ARG ΠΈ ENV Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ°Π·Π° Docker ΠΈΠ· ΡΠ°ΠΉΠ»Π° Docker ΠΈ Π·Π°ΠΏΡΡΠΊΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°.
ΠΠ½ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΡΡΠ²Π°ΡΡΡΡ, Π½ΠΎ ARG Π½Π΅Π»ΡΠ·Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ·Π½ΡΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ².
ΠΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ Π·Π°Π±ΠΎΠ»Π΅Π²Π°Π½ΠΈΡ ΠΈ ΡΡΠ°Π²ΠΌΡ
ΠΡΠΎΡΠ΅ΡΡΠΈΡ Π³ΡΡΠ·ΡΠΈΠΊΠ° ΡΠΎΠΏΡΡΠΆΠ΅Π½Π° Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠΉ ΠΌΡΡΠ΅ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠΎΠΉ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ Π² ΡΠ°Π±ΠΎΡΠ΅ Π³ΡΡΠ·ΡΠΈΠΊΠΎΠ² ΡΠ°ΡΡΡ ΡΡΠΆΠ΅Π»ΡΠ΅ ΠΏΡΠΈΡ ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π½Π°Π³ΡΡΠ·ΠΊΠΈ, Π²ΡΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΡΡΠ°Π²ΠΌΡ. ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎΠ΅ ΠΏΠΈΡΠ°Π½ΠΈΠ΅, Π΅ΠΆΠ΅Π³ΠΎΠ΄Π½ΡΠΉ ΠΎΡΠΏΡΡΠΊ, ΠΈ ΠΌΠ΅Π΄ΠΈΡΠΈΠ½ΡΠΊΠΈΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π² Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°ΡΡ ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π·Π΄ΠΎΡΠΎΠ²ΡΠ΅ Π³ΡΡΠ·ΡΠΈΠΊΠΎΠ². ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠΈΡΠΊΠΈ Π΄Π»Ρ Π·Π΄ΠΎΡΠΎΠ²ΡΡ:
- ΠΡΠΎΡΡΡΠ΄Ρ ΠΈ ΠΎΠ±ΠΌΠΎΡΠΎΠΆΠ΅Π½ΠΈΡ.
- ΠΠΎΠ»Π΅Π·Π½ΠΈ ΡΡΡΡΠ°Π²ΠΎΠ².
- Π Π°ΡΡΡΠΆΠ΅Π½ΠΈΡ ΠΌΡΡΡ ΠΈ ΡΡΡ ΠΎΠΆΠΈΠ»ΠΈΠΉ.
- Π‘Π½ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡΡΡΠΎΡΡ Π·ΡΠ΅Π½ΠΈΡ Π² ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ Π½Π°Π³ΡΡΠ·ΠΎΠΊ.
- Π’ΡΠ°Π²ΠΌΡ ΠΊΠΎΠΆΠΈ.
- ΠΠ»ΠΊΠΎΠ³ΠΎΠ»ΠΈΠ·ΠΌ (ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π² ΠΏΠΎΠ·Π΄Π½Π΅ΠΉ ΡΡΠ°Π΄ΠΈΠΈ ΡΡΡΠ΄ΠΎΠ²ΠΎΠ³ΠΎ ΡΡΠ°ΠΆΠ°).
- Π‘Π½ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΠΎΠ²ΠΎΠ³ΠΎ Π²Π»Π΅ΡΠ΅Π½ΠΈΡ.
- ΠΡΡΠ΅ΠΎΡ ΠΎΠ½Π΄ΡΠΎΠ·Ρ, ΡΠ°Π΄ΠΈΠΊΡΠ»ΠΈΡΡ, Π³ΡΡΠΆΠΈ ΠΌΠ΅ΠΆΠΏΠΎΠ·Π²ΠΎΠ½ΠΎΡΠ½ΡΡ Π΄ΠΈΡΠΊΠΎΠ², ΠΊΠΎΠΌΠΏΡΠ΅ΡΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅Π»ΠΎΠΌΡ ΠΏΠΎΠ·Π²ΠΎΠ½ΠΎΡΠ½ΠΈΠΊΠ°
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΠΈΡΠΊΠ° ΡΠΎΠΌΠ°ΠΌΠΈ
Π’ΠΎΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π²Π½Π΅ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, Π΄Π°Π½Π½ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΡΡΠ°Π²Π°ΡΡΡΡ Π·Π° Π΅Π³ΠΎ ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ ΠΈ Π±ΡΡΡ ΠΎΡΠ΄Π΅Π»Π΅Π½Ρ ΠΎΡ Π΅Π³ΠΎ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π°. Π’ΠΎΠΌΠ° ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΡΡΠΆΠ΅Π»ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Π²Π½ΡΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΠΏΠ»ΠΎΡ ΠΎ Π²Π»ΠΈΡΡΡ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ.
ΠΠΎΠΏΡΡΡΠΈΠΌ, ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ MongoDB, Π° Π·Π°ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π΅Π³ΠΎ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±ΡΠΊΠ°ΠΏΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΡΠ°Π½Π΅Π΅ (ΠΎΠ½ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ Π² ΡΠ°ΠΉΠ»Π΅ bck.json):
ΠΠ°Π½Π½ΡΠ΅ Π² ΡΠ°ΠΉΠ»Π΅ Π±ΡΠΊΠ°ΠΏΠ° Π±ΡΠ΄ΡΡ Ρ ΡΠ°Π½ΠΈΡΡΡΡ Π½Π° Ρ ΠΎΡΡΠ΅ Π² ΠΏΠ°ΠΏΠΊΠ΅ /var/lib/docker/volumes . ΠΠΎΡΠ΅ΠΌΡ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ Π½Π΅ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ Π² ΡΠ»ΠΎΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°? ΠΡΠΈΡΠΈΠ½Π° Π² ΡΠΎΠΌ, ΡΡΠΎ Π² Dockerfile ΠΎΠ±ΡΠ°Π·Π° mongo ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ /data/db (Π³Π΄Π΅ mongo Ρ ΡΠ°Π½ΠΈΡ ΡΠ²ΠΎΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ) ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΡΠΎΠΌ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΎΠ±ΡΠ°Π·Ρ, ΡΠ°ΡΡΠΎ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠΎΠΌΠ° Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΠΌΠΈ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ ΡΠ»ΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°.
ΠΠΊΠΎΠ½ΡΠΈΠ² ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΡΠΊΠ°ΠΏΠ°, ΠΌΡ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»ΡΠ΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΠΎΠΌ Π½Π΅ ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ, Π΅ΡΠ»ΠΈ ΠΌΡ Π½Π΅ ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΡΡΠΎΠ³ΠΎ ΡΠ²Π½ΠΎ β ΠΎΠ½ ΠΎΡΡΠ°Π΅ΡΡΡ, ΠΏΠΎΡΡΠ΅Π±Π»ΡΡ Π΄ΠΈΡΠΊΠΎΠ²ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ. Π’ΠΎΠ³Π΄Π° ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠΉΡΠΈ Π΄ΠΎΠ»Π³ΠΈΠΌ ΠΏΡΡΠ΅ΠΌ:
ΠΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ prune :
Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ Β«Π-Π±ΠΎΠ»ΡΡΠΎΠ΅Β» ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°. ΠΠ°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, Π·Π½Π°ΡΡ Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±ΡΡΡΡΠΎ ΠΈΠ»ΠΈ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ. ΠΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΡΡΠΈ Ρ ΡΠ°Π·Π½ΠΎΠΉ ΡΠΊΠΎΡΠΎΡΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΈ ΠΏΠΎΠΈΡΠΊΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². ΠΠΎΠΏΡΡΡΠΈΠΌ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π³, ΠΎΠ΄Π½Π° ΠΈΡΠ΅ΡΠ°ΡΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ 1ΠΌΡ. ΠΠ½Π°ΡΠΈΡ ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ 100 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ 100ΠΌΡ. ΠΠ»Ρ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ°, ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ