Tôi có một máy chủ OpenVPN đang chạy để lộ một số địa chỉ IP riêng tư, tôi muốn các dịch vụ của docker của tôi truy cập vào các địa chỉ đó.
Lý tưởng nhất là sẽ không có ứng dụng khách OpenVPN "bên trong" các thùng chứa vì hình ảnh dự kiến sẽ được triển khai trong môi trường không cần VPN.
Những gì tôi đã cố gắng cho đến nay
Tôi đã kết nối thành công một container với VPN của mình với hình ảnh dperson / openvpn-client .
Tôi đã khởi chạy thành công một container khác bằng cách sử dụng container đó làm mạng của nó bằng --net=container:my-vpn-client
cờ.
Bây giờ tôi đang cố gắng thiết lập một dịch vụ docker sẽ truy cập các địa chỉ IP riêng của tôi và những gì tôi tìm thấy là:
- Tôi không thể chạy ứng dụng khách openVPN trong một dịch vụ vì nó không thể được cung cấp
cap-add: NET_ADMIN
. Có những vấn đề mở với Docker thảo luận về vấn đề này nhưng chúng vẫn mở. - Tôi hình dung tôi có thể có bộ chứa máy khách openVPN chạy "bên cạnh" cụm swarm, nhưng tôi không thể sử dụng
network_mode: "container:my-vpn-client"
vì nó không được hỗ trợ và không có ý nghĩa vì tôi không thể buộc một thùng chứa tùy ý có mặt trên mọi nút của swarm mà không phải là một dịch vụ chính nó. - Tôi đã thử tạo một mạng có thể đính kèm (cầu / lớp phủ) và chỉ cần gắn thùng chứa ứng dụng khách OpenVPN của mình vào đó và hy vọng các thành viên khác của mạng đó sẽ đi qua đường ống đó ... và tôi đã thất vọng.
Vì vậy, tôi ở đây, bất kỳ ý tưởng?
PS Nếu có thể giúp, điều này chủ yếu là để thiết lập một số thử nghiệm tự động sẽ chạy các dịch vụ trên máy docker đơn ở chế độ swarm, như trong swarm init> stack triển khai> chạy thử nghiệm> rời khỏi swarm. Vì vậy, nếu có một "hack" cho điều đó ... tôi có thể quan tâm;)
ccr
tệp như thể bạn đang xử lý một mạng cục bộ. Như với tất cả các định tuyến TCP / IP, "traceroute
là người bạn tốt nhất của bạn, như làtcpdump
hoặc WireShark."