π³ Docker & Docker Compose: ΠΠ½ΡΡΠ°Π»Π°ΡΠΈΡ Π·Π° ΡΠ΅ΠΊΡΠ½Π΄ΠΈ

Π ΡΠ²Π΅ΡΠ° Π½Π° DevOps, ΡΡΡΠ²ΡΡΠ½Π°ΡΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ ΠΈ ΠΌΠΎΠ΄Π΅ΡΠ½ΠΈΡΠ΅ ΡΠ΅Π± ΡΡΠ»ΡΠ³ΠΈ, Docker Π΅ Π΅Π΄ΠΈΠ½ ΠΎΡ Π½Π°ΠΉ-ΠΌΠΎΡΠ½ΠΈΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½Π΅, ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π ΠΊΠΎΠ³Π°ΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΈ Docker Compose, ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ ΠΈΠ΄Π΅Π°Π»Π½Π°ΡΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅Π»ΠΈ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠΈ Ρ Π΅Π΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°.
Π ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ ΡΠ΅ ΡΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ ΠΊΠ°ΠΊ Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Ρ Docker ΠΈ Docker Compose Π·Π° ΡΠ΅ΠΊΡΠ½Π΄ΠΈ, ΠΊΠ°ΠΊΠ²ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π°Ρ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΡΡ, ΠΈ Π·Π°ΡΠΎ Π²ΡΠ΅ΠΊΠΈ Linux Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ ΠΈΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΡΡΠ±Π²Π° Π΄Π° Π³ΠΈ ΠΈΠΌΠ° Π² Π°ΡΡΠ΅Π½Π°Π»Π° ΡΠΈ.
π¦ ΠΠ°ΠΊΠ²ΠΎ Π΅ Docker?
Docker Π΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΠ·Π°ΡΠΈΡ β ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ, ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° Π΄Π° ΡΠ°Π±ΠΎΡΡΡ Π² ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½Π° ΡΡΠ΅Π΄Π°, Π½Π°ΡΠ΅ΡΠ΅Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ. ΠΡΠ΅ΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΡΡΠ΄ΡΡΠΆΠ° Π²ΡΠΈΡΠΊΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π΄Π°Π΄Π΅Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅: ΠΊΠΎΠ΄, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ.
π ΠΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π° Π½Π° Docker:
- ΠΠ΅ΠΊ ΠΈ Π±ΡΡΠ·
- ΠΠΎΡΡΠ°ΡΠΈΠ²Π΅Π½ β ΡΠ°Π±ΠΎΡΠΈ Π΅Π΄Π½Π°ΠΊΠ²ΠΎ Π½Π° Π²ΡΡΠΊΠ° ΠΌΠ°ΡΠΈΠ½Π°
- ΠΠ°ΡΠ°Π±ΠΈΡΡΠ΅ΠΌ ΠΈ Π»Π΅ΡΠ΅Π½ Π·Π° CI/CD ΠΏΡΠΎΡΠ΅ΡΠΈ
- ΠΠ΄Π΅Π°Π»Π΅Π½ Π·Π° microservices Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ
π ΠΠ°ΠΊΠ²ΠΎ Π΅ Docker Compose?
Docker Compose ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Ρ ΠΈ ΡΠΏΡΠ°Π²Π»ΡΠ²Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΌΠ΅ΡΡΠΎ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°Ρ ΠΏΠΎΠΎΡΠ΄Π΅Π»Π½ΠΎ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, Π±Π΅ΠΊΠ΅Π½Π΄, ΡΡΠΎΠ½ΡΠ΅Π½Π΄ ΠΈ ΠΊΠ΅Ρ ΡΠΈΡΡΠ΅ΠΌΠ°, Ρ Docker Compose ΠΌΠΎΠΆΠ΅Ρ Π΄Π° Π³ΠΈ ΠΎΠΏΠΈΡΠ΅Ρ Π² Π΅Π΄ΠΈΠ½ ΡΠ°ΠΉΠ» docker-compose.yml
ΠΈ Π΄Π° Π³ΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Ρ Π½Π°Π²Π΅Π΄Π½ΡΠΆ Ρ:
docker compose up -d
π ΠΠ½ΡΡΠ°Π»Π°ΡΠΈΡ Π½Π° Docker Π·Π° ΡΠ΅ΠΊΡΠ½Π΄ΠΈ
ΠΡΠΎ ΠΊΠ°ΠΊ ΡΠ°ΠΌΠΎ Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π΄Π° ΠΈΠΌΠ°Ρ Π½Π°ΠΏΡΠ»Π½ΠΎ ΡΠ°Π±ΠΎΡΠ΅Ρ Docker Π½Π° ΡΠ²ΠΎΡ Linux ΡΡΡΠ²ΡΡ (ΡΠ΅ΡΡΠ²Π° ΡΠ΅ Π½Π° Ubuntu, Debian, CentOS, Fedora, Arch):
π½ 1. ΠΠ·ΡΠ΅Π³Π»ΠΈ ΠΎΡΠΈΡΠΈΠ°Π»Π½ΠΈΡ ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΠΎΠ½Π΅Π½ ΡΠΊΡΠΈΠΏΡ:
curl -fsSL https://get.docker.com -o install-docker.sh
βΆοΈ 2. Π‘ΡΠ°ΡΡΠΈΡΠ°ΠΉ ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡΡΠ° Ρ root ΠΈΠ»ΠΈ ΡΡΠ΅Π· sudo:
sudo sh install-docker.sh
π Π’ΠΎΠ²Π° Π΅ Π²ΡΠΈΡΠΊΠΎ! Π‘Π»Π΅Π΄ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ΅ΠΊΡΠ½Π΄ΠΈ Docker ΡΠ΅ Π΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ ΠΈ Π³ΠΎΡΠΎΠ² Π·Π° ΠΏΠΎΠ»Π·Π²Π°Π½Π΅.
π§ͺ ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠ»Π΅Π΄ ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡΡΠ°
Π£Π²Π΅ΡΠΈ ΡΠ΅, ΡΠ΅ Π²ΡΠΈΡΠΊΠΎ Π΅ Π½Π°ΡΠ΅Π΄ Ρ:
docker βversion
ΠΡΠ°ΠΊΠ²Π°Π½ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ:
Docker version 24.x.x, build xxxxxxxx
Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ΡΡΠ²Π°ΠΉ Π΄Π°Π»ΠΈ Docker Π΄Π΅ΠΌΠΎΠ½ΡΡ ΡΠ°Π±ΠΎΡΠΈ:
sudo systemctl status docker
π Docker ΠΈ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ
ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ Docker ΡΠ»Π΅ΡΠ½ΡΠ²Π° ΠΆΠΈΠ²ΠΎΡΠ° Π½ΠΈ, Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° Π·Π°Π±ΡΠ°Π²ΡΠΌΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈ:
- ΠΠΈΠΊΠΎΠ³Π° Π½Π΅ ΡΡΠ°ΡΡΠΈΡΠ°ΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Ρ
--privileged
, ΠΎΡΠ²Π΅Π½ Π°ΠΊΠΎ Π½Π΅ Π΅ Π½Π°Π»ΠΎΠΆΠΈΡΠ΅Π»Π½ΠΎ. - ΠΠ°Π·ΠΈ
.env
ΠΈdocker-compose.yml
ΠΎΡ ΡΡΠΆΠ΄ΠΈ ΠΎΡΠΈ. - ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉ ΠΎΡΠΈΡΠΈΠ°Π»Π½ΠΈ ΠΈ Π΄ΠΎΠ²Π΅ΡΠ΅Π½ΠΈ ΠΎΠ±ΡΠ°Π·ΠΈ ΠΎΡ Docker Hub.
- ΠΠ±Π½ΠΎΠ²ΡΠ²Π°ΠΉ ΡΠ΅Π΄ΠΎΠ²Π½ΠΎ Docker, Compose ΠΈ ΠΎΠ±ΡΠ°Π·ΠΈΡΠ΅.
π§Ή ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° ΠΈ ΠΏΠΎΡΠΈΡΡΠ²Π°Π½Π΅
Docker ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π°ΡΡΡΠΏΠ° ΠΊΠ΅Ρ ΠΈ ΠΎΡΡΠ°ΡΠ΅Π»ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ. ΠΠΎΡΠΈΡΡΠΈ Π³ΠΈ Π»Π΅ΡΠ½ΠΎ Ρ:
docker system prune -a
β οΈ Π’ΠΎΠ²Π° ΡΠ΅ ΠΈΠ·ΡΡΠΈΠ΅ Π²ΡΠΈΡΠΊΠΈ Π½Π΅Π°ΠΊΡΠΈΠ²Π½ΠΈ ΠΎΠ±ΡΠ°Π·ΠΈ, ΠΌΡΠ΅ΠΆΠΈ ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ!
π ΠΠΎΠ»Π΅Π·Π½ΠΈ Docker ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ
ΠΠΎΠΌΠ°Π½Π΄Π° | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
---|---|
docker ps | ΠΠΎΠΊΠ°ΠΆΠΈ ΡΠ°Π±ΠΎΡΠ΅ΡΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ |
docker ps -a | ΠΡΠΈΡΠΊΠΈ (Π²ΠΊΠ». ΡΠΏΡΠ΅Π½ΠΈ) ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ |
docker images | Π‘ΠΏΠΈΡΡΠΊ Ρ ΠΎΠ±ΡΠ°Π·ΠΈ |
docker stop <id> | Π‘ΠΏΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ |
docker rm <id> | ΠΠ·ΡΡΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ |
docker rmi <image> | ΠΠ·ΡΡΠΈΠΉ ΠΎΠ±ΡΠ°Π· |
docker logs <container> | ΠΠΈΠΆ Π»ΠΎΠ³ΠΎΠ²Π΅ΡΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ |
docker exec -it <container> bash | ΠΠ»Π΅Π· Π²ΡΡΡΠ΅ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ (ΡΠ΅ΡΠΌΠΈΠ½Π°Π») |
π ΠΠΎΠ»Π΅Π·Π½ΠΈ Compose ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ
ΠΠΎΠΌΠ°Π½Π΄Π° | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
---|---|
docker compose up -d | Π‘ΡΠ°ΡΡΠΈΡΠ° Π²ΡΠΈΡΠΊΠΈ ΡΡΠ»ΡΠ³ΠΈ Π½Π° Π·Π°Π΄Π΅Π½ ΠΏΠ»Π°Π½ |
docker compose down | Π‘ΠΏΠΈΡΠ° ΠΈ ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ |
docker compose logs | ΠΠΎΠΊΠ°Π·Π²Π° Π»ΠΎΠ³ΠΎΠ²Π΅ΡΠ΅ |
docker compose ps | ΠΠΎΠΊΠ°Π·Π²Π° ΡΡΠ°ΡΡΡΠ° |
docker compose restart | Π Π΅ΡΡΠ°ΡΡΠΈΡΠ° Π²ΡΠΈΡΠΊΠΈ ΡΡΠ»ΡΠ³ΠΈ |
π§ ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΠ·Π°ΡΠΈΡΡΠ° Π²Π΅ΡΠ΅ Π½Π΅ Π΅ Π±ΡΠ΄Π΅ΡΠ΅ΡΠΎ β ΡΡ Π΅ Π½Π°ΡΡΠΎΡΡΠ΅. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° Docker ΠΈ Docker Compose ΠΌΠΎΠΆΠ΅Ρ Π΄Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Ρ, ΡΠ΅ΡΡΠ²Π°Ρ, ΡΠ°Π·Π³ΡΡΡΠ°Ρ ΠΈ ΡΠΏΡΠ°Π²Π»ΡΠ²Π°Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ Π½Π΅ΡΡΠ²Π°Π½Π° Π»Π΅ΠΊΠΎΡΠ°. Π ΡΠ΅Π³Π°, ΡΠ»Π΅Π΄ ΠΊΠ°ΡΠΎ Π·Π½Π°Π΅Ρ ΠΊΠ°ΠΊ Π΄Π° Π³ΠΈ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Ρ Π±ΡΠΊΠ²Π°Π»Π½ΠΎ Π·Π° ΡΠ΅ΠΊΡΠ½Π΄ΠΈ, ΠΌΠΎΠΆΠ΅Ρ Π΄Π° Π³ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ ΠΊΡΠΌ Π²ΡΠ΅ΠΊΠΈ ΡΠ²ΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠΈΠΌ Π²ΠΈ Π·Π° ΠΏΡΠΎΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ°ΡΠΈΡΡΠ°! ΠΠΊΠΎ Π½Π°ΠΌΠ΅ΡΠΈΡ ΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΡΠ° Π·Π° ΠΏΠΎΠ»Π΅Π·Π½Π°, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π΄Π°ΡΠΈΡΠ΅ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ Π±ΡΡΠΎΠ½ΠΈΡΠ΅ ΠΏΠΎ-Π΄ΠΎΠ»Ρ: π° Donate βοΈ ΠΠ°ΡΠ΅ΡΠ΅ Ρ PayPalDonate π³ ΠΠ°ΡΠ΅ΡΠ΅ Ρ Revolut