Как контейнеры общаются между собой в Docker Compose
Python
Senior
Без компании
Как контейнеры общаются между собой в Docker Compose
Ответы
В Docker Compose сервисы могут общаться друг с другом по именам сервисов, указанным в `docker-compose.yml`. Docker автоматически создает внутреннюю сеть и DNS, разрешающий имена сервисов в их IP-адреса.
Пример `docker-compose.yml`:
```
version: '3'
services:
web:
image: nginx
ports:
- "80:80"
api:
image: my-api
```
Здесь сервис `web` может обратиться к `api` по имени `api` (например, `http://api:3000`). Docker Compose автоматически создаст сеть и настроит DNS.
Ключевые моменты:
- Имя сервиса = хостнейм в сети
- Общение происходит через внутреннюю сеть
- Порт указывается только в `expose` или при явном пробросе
- Для внешнего доступа нужно пробрасывать порты через `ports`