通过docker连接到vpn的最佳实践
一些应用程序我们依靠连接到我们的VPN来连接到不同的(不是docker化的)解决scheme。
这样做的“docker方式”是什么? 在我看来,将OpenVPN添加到现有的图像是违反docker的理念。
从我站在我觉得,创build一个dockerVPN客户端容器是最有意义的。 但是,这将是什么样子? 我使用docker撰写,所以肯定会有一个
myContainer - links: myVPNClient
但我会不得不转发端口? 或者,为了使myContainer
能够通过 openVPN容器进行连接,将会发生什么情况。
另一个select是问问那些习惯于将所有东西都 jfrazelle
的习惯的杰夫·弗拉泽尔( jfrazelle
) 。
果然,她有一个jfrazelle/dockerfiles/openvpn
项目,直接向主机公开:
vpn: build: . volumes: - .:/etc/openvpn net: host devices: - /dev/net/tun:/dev/net/tun cap_add: - NET_ADMIN
它使用TUN(而不是TAP)接口 。
可能最简单的解决scheme是configuration任何需要vpn的容器来使用vpn容器的networking命名空间。 也就是说,你的docker-compose.yml会包含如下内容:
vpn: image: myvpn_image app1: image: app1_image net: container:vpn
使用此configuration, vpn
容器和app1
容器将看到相同的networking环境。
- Java和Docker基于高山
- Docker到VMnetworking
- 我试图通过Docker与Clojure应用程序连接到MongoDB
- “curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add – “我们应该在这里添加一些密钥?
- 无法导入容器图像错误fabric_e_invalid_operation
- 无法使用Ansible连接到RemoteServer上的docker
- 错误:Docker容器中的Postgres数据库导入
- docker堆栈/群golang端口没有暴露
- 具体访问多用户的外部dockerregistry