Изменение подсети Docker контейнеров
Автор Nikolay Ivanov, Last modified by Nikolay Ivanov на 06 февраля 2026 09:55 AM

Проверка IP адресов контейнеров

docker ps -q | xargs -n 1 -I {} docker inspect -f '{{.Name}}{{range $k,$v := .NetworkSettings.Networks}} /{{$k}}: {{$v.IPAddress}}{{end}}' {}

Версия 3.x

  1. Выполнить остановку PAM:
    sudo bash /etc/indeed/indeed-pam/scripts/stop-pam.sh
    
  2. Выполнить остановку Docker:
    sudo systemctl stop docker.socket
    sudo systemctl stop docker
    
  3. Удалить подсеть docker0:
    sudo ip link set dev docker0 down
    sudo ip link delete docker0
    
  4. Удалить все сетевые артефакты docker:
    sudo rm -rf /var/lib/docker/network
    
  5. Внести изменения в файл /etc/docker/daemon.json (подсеть используемая в примере: 172.17.0.0):
    {  
      "bip": "172.17.0.1/24",  
      "default-address-pools": [  
        {  
          "base": "172.17.0.0/16",  
          "size": 24  
        }  
      ]  
    }
    
  6. Выполнить проверку валидации json:
    cat /etc/docker/daemon.json | jq
    
  7. Выполнить запуск docker:
    sudo systemctl start docker
    
  8. Выполнить проверку изменения подсети docker:
    ip a | grep docker
    
  9. Изменить подсеть в следующих переменных файла /etc/indeed/indeed-pam/.env:
    PG_SQL_PROXY_SUBNET
    SSH_PROXY_SUBNET
    RDP_PROXY_SUBNET
    NGINX_PROXY_SUBNET
    CORE_SUBNET
  10. выполнить запуск контейнеров PAM:
    sudo bash /etc/indeed/indeed-pam/scripts/run-pam.sh
    

Версия 2.10

Изменение через Docker Daemon

  1. Выполнить остановку PAM:
    sudo bash /etc/indeed/indeed-pam/scripts/stop-pam.sh
    
  2. Выполнить остановку Docker:
    sudo systemctl stop docker.socket
    sudo systemctl stop docker
    
  3. Удалить подсеть docker0:
    sudo ip link set dev docker0 down
    sudo ip link delete docker0
    
  4. Удалить все сетевые артефакты docker:
    sudo rm -rf /var/lib/docker/network
    
  5. Внести изменения в файл /etc/docker/daemon.json (подсеть используемая в примере: 172.17.0.0):
    {  
      "bip": "172.17.0.1/24",  
      "default-address-pools": [  
        {  
          "base": "172.17.0.0/16",  
          "size": 24  
        }  
      ]  
    }
    
  6. Выполнить проверку валидации json:
    cat /etc/docker/daemon.json | jq
    
  7. Выполнить запуск docker:
    sudo systemctl start docker
    
  8. Выполнить проверку изменения подсети docker:
    ip a | grep docker
    
  9. выполнить запуск контейнеров PAM:
    sudo bash /etc/indeed/indeed-pam/scripts/run-pam.sh
    

Изменение через Compose файл

  1. Выполнить остановку PAM:
    sudo bash /etc/indeed/indeed-pam/scripts/stop-pam.sh
    
  2. В конфигурационных файлах docker-compose.management-server.yml и docker-compose.access-server.yml внести изменения в секцию networks указав подсеть (подсеть используемая в примере: 192.168.143.0):
    pam-*COMPONENT*-network:
    name: pam-*COMPONENT*-network
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: "192.168.143.0/29"
    
    ВАЖНО: Рекомендуется сразу указать подсети для всех компонентов иначе может быть пересечение между подсетями компонентов и контейнеры не запустятся.
  3. выполнить запуск контейнеров PAM:
    sudo bash /etc/indeed/indeed-pam/scripts/run-pam.sh
(1 голос(а))
Эта статья полезна
Эта статья бесполезна