Я пытаюсь запустить два контейнера Docker, подключенных к одной сети Docker, с помощью Docker Compose. Я сталкиваюсь со следующей ошибкой при запуске контейнеров:
Error response from daemon: failed to add interface veth5b3bcc5 to sandbox:
error setting interface "veth5b3bcc5" IP to 172.19.0.2/16:
cannot program address 172.19.0.2/16 in sandbox
interface because it conflicts with existing
route {Ifindex: 10 Dst: 172.19.0.0/16 Src: 172.19.0.1 Gw: <nil> Flags: [] Table: 254}
Мой docker-compose.yml
выглядит так:
version: '3'
volumes:
dsn-redis-data:
driver: local
dsn-redis-conf:
driver: local
networks:
dsn-net:
driver: bridge
services:
duty-students-notifier:
image: duty-students-notifier:latest
network_mode: host
container_name: duty-students-notifier
build:
context: ../
dockerfile: ./docker/Dockerfile
env_file: ../.env
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
networks:
- dsn-net
restart: always
dsn-redis:
image: redis:latest
expose:
- 5432
volumes:
- dsn-redis-data:/var/lib/redis
- dsn-redis-conf:/usr/local/etc/redis/redis.conf
networks:
- dsn-net
restart: always
Спасибо!
О, теперь я вижу. Забыл убрать network_mode: host
из конфига. Теперь все работает отлично. Спасибо, что указали на меня. Вы можете опубликовать ответ, если хотите. Я приму это.
Параметр network_mode: host
обычно отключает сеть Docker и может мешать другим параметрам. В вашем случае похоже, что он пытается применить конфигурацию networks:
к сетевому слою хост-системы.
network_mode: host
почти никогда не требуется, и его удаление может решить эту проблему.
Есть ли в вашей сетевой среде хоста другой интерфейс с сетью 172.19.0.0/16? У вас несколько странное сочетание сетевых настроек — конфликтуют
networks: [...]
иnetwork_mode: host
— помогает ли удаление из файла абсолютно всех сетевых настроек?