Как организовать взаимодействие между контейнерами в Docker без использования docker-compose
Python
Senior
Без компании
Как организовать взаимодействие между контейнерами в Docker без использования docker-compose
Ответы
Для взаимодействия между контейнерами в Docker без docker-compose можно использовать Docker-сети. Вот основные шаги:
- Создаем пользовательскую сеть:
```
docker network create my_network
```
- Запускаем контейнеры с указанием сети и алиасов (для удобства):
```
docker run -d --name container1 --network my_network my_image1
docker run -d --name container2 --network my_network my_image2
```
Теперь контейнеры могут общаться между собой по именам (container1, container2) или алиасам внутри сети. Например, из container2 можно обратиться к container1 по имени:
```
# Пример в Python-приложении
import requests
response = requests.get('http://container1:8000/api')
```
Ключевые моменты:
- Все контейнеры должны быть в одной сети
- Взаимодействие происходит по именам контейнеров
- Можно использовать любые порты внутри сети (не нужно публиковать порты через -p)
- Для внешнего доступа к сервисам всё равно потребуется публикация портов