@dobromin

Как запустить docker с Proxy и сетевыми интерфейсами?

Как запустить докер со своими сетевыми интерфейсами, чтобы я мог в дальнейшем настроить маршрутизацию? Мне нужно, чтобы через докер можно было выходить в интернет.

Разворачиваем сервер, на нем openvpn, на нем же docker со своими сетями и подключением к прокси серверам. Пользователь 1 подключается к впн серверу и его маршрутизирует через докер1 файрволлом. Таким образом пользователь выходит в сеть через прокси 1. И так для n-ого количества пользователей, может конечно есть более простые решения без использования специализированного софта и микротиков что ранее мне уже посоветовали "Попробовать"

Сейчас конфиг такой

version: "3.9"
services:
  prixy_debian_vpn_user_11:
    container_name: prixy_debian_vpn_user_11
    image: debian:11
    environment:      
      HTTP_PROXY: 'http://vpn:vpn@192.168.11.1:1111'
      HTTPS_PROXY: 'http://vpn:vpn@192.168.11.1:2222'
      NO_PROXY: 'localhost'
networks:
      back:
        ipv4_address: 172.16.238.2
services:
  prixy_debian_vpn_user_22:
    container_name: prixy_debian_vpn_user_22
    image: debian:11
    environment:      
      HTTP_PROXY: 'http://vpn:vpn@192.168.11.1:3333'
      HTTPS_PROXY: 'http://vpn:vpn@192.168.11.1:4444'
      NO_PROXY: 'localhost'
networks:
      back:
        ipv4_address: 172.16.238.3
networks:
#Internal-only network for proper nginx proxying and ssh
  back:
    driver: bridge
    internal: false
    ipam:
     driver: default
     config:
     - subnet: 172.16.238.0/24 
     - gateway: 172.16.238.1
#External network actually
  default:
    driver: bridge


При запуске докера я не вижу сети 172.16.238.3 и сетевые интерфейсы. при этом существует ошибка
WARNING: Some networks were defined but are not used by any service: back


Может вообще настройку сети не верно сделал, в моем понимание должно произойти следующее
там где комент #Internal-only network for proper nginx proxying and ssh
это внутренние сети которые должны появиться как виртуальные интерфейсы локальной сети
там где #External network actually
это внешний интерфейс который объединяется бриджом с основным интерфейсом сервера что смотрит в интернет.
После удачного поднятия я могу видеть сеть докеров и останется лишь настроить маршрутизацию.
  • Вопрос задан
  • 1678 просмотров
Пригласить эксперта
Ответы на вопрос 1
karabanov
@karabanov Куратор тега Docker
Системный администратор
это внешний интерфейс который объединяется бриджом с основным интерфейсом сервера что смотрит в интернет.

Она и так доступна с хостовой машины. Можешь в фаирвол натящее правило добавить.

Ещё можешь через Docker-proxy порты пробросить в хотовую машину (директива ports подробнее)

Можешь отключить изоляцию у сети и пользоваться напрямую итерфейсами хостовой машины (директива network_mode: host).

PS
Вот так попробуй:
networks:
  back:
    name: back
    driver: bridge
    ipam:
      driver: default
      config:
      - subnet: 172.16.238.0/24
        gateway: 172.16.238.1
    driver_opts:
      com.docker.network.bridge.name: back
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы