Настройка статических IP-адресов контейнеров в пользовательских сетях Bridge
- Смена IP-адреса контейнера после перезагрузки хоста или перезапуска Docker-демона.
- Сбои межсервисного взаимодействия при использовании интеграций со сторонними системами (белые списки IP в фаерволах, legacy СУБД).
- Ошибка
user specified IP address is supported on user defined networks onlyпри попытке назначить IP в стандартной сетиbridge.
1. Создание изолированной пользовательской Bridge-сети
Статические IP поддерживаются только в кастомных сетях с явно определенной подсетью:
docker network create \
--driver bridge \
--subnet 172.28.0.0/16 \
--gateway 172.28.0.1 \
custom_isolated_net2. Запуск контейнера со статическим IP через Docker CLI
docker run -d \
--name database_static \
--net custom_isolated_net \
--ip 172.28.5.10 \
-p 5432:5432 \
postgres:15-alpine3. Конфигурация статического IP в Docker Compose
version: "3.8"
services:
backend_service:
image: custom-api:latest
container_name: api_server
networks:
static_network:
ipv4_address: 172.20.0.50
ports:
- "8080:8080"
networks:
static_network:
driver: bridge
ipam:
driver: default
config:
- subnet: 172.20.0.0/24
gateway: 172.20.0.14. Проверка назначенного IP-адреса
docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' api_server Частые вопросы (FAQ)
Можно ли назначить статический IP в стандартной сети 'bridge' по умолчанию?
Нет. Архитектура Docker запрещает ручное назначение IP-адресов в дефолтной сети bridge. Необходимо создать собственную пользовательскую сеть (user-defined network).
Как подключить контейнер сразу к двум сетям со статическими IP?
Используйте команду: docker network connect --ip 172.29.0.5 second_net container_name.