Я пытаюсь заставить набор контейнеров работать вместе с OpenVPN-клиентом. я использовал этот в качестве шаблона и построить свой собственный контейнер (на Raspberry Pi, поэтому я не могу сразу использовать готовый образ). Пока это работает как шарм, используя конфигурацию docker-compose ниже, я создаю VPN-соединение в одном контейнере и подключаюсь к нему со вторым контейнером. Второй контейнер также использует VPN как следует (проверено путем получения общедоступного IP-адреса с помощью docker exec).
Проблема в том, что у второго контейнера есть веб-интерфейс, и обычно я просто открываю его порт для публики и получаю к нему доступ. в этом случае это невозможно. dperson пишет, что вам нужно использовать обратный прокси-сервер nginx для доступа к нему, но это кажется слишком сложным, мне не нужен обратный прокси для пересылки определенного URL-адреса на порт, мне нужно только экспортировать порт. Или пробросить порт с openvpn-client на другой сервис. Кроме того - что, если этот порт не HTTP / S, а - сервер openSSH или что-то в этом роде - тогда я все равно потерялся с обратным прокси-сервером nginx.
просто - я не могу заставить его работать, и я не знаю, как правильно это настроить.
Дополнительная информация: я думаю, мне не нужно указывать сеть "vpn", но я думаю, что это тоже не вредит.
docker-compose.yml
version: "2"
networks:
vpn:
driver: bridge
ipam:
driver: default
config:
- subnet: 10.42.42.0/24
gateway: 10.42.42.1
services:
openvpn-client:
image: openvpn-client
# ... more configuration here ...
cap_add:
- net_admin
devices:
- /dev/net/tun
networks:
vpn:
ipv4_address: 10.42.42.2
# ports exposing, those are the ports from other-service
ports:
- 1234:1234
restart: unless-stopped
other-service:
# ... some other settings ...
network_mode: "service:openvpn-client"
# ports does not work with network_mode service
# ports:
# - 1234:1234
depends_on:
- openvpn-client
restart: unless-stopped