问题: 我希望在Docker容器中运行多个VPN服务器,每个容器都有自己的公共IP。
使用-p参数我可以分别连接到每一个但是我看到的公共ip是eth0接口而不是我希望它的那个(eth0:1)所以如何创建一个新的docker0使用eth0:1作为流量接口的接口?
致以最诚挚的问候和感谢。
答案 0 :(得分:1)
Docker不使用它之外的网络。
对于来自世界之外的主机到容器之间的连接,使用端口绑定。
在创建docker镜像时,在Dockerfile中公开端口
将Docker容器暴露给主机:
公开容器对于主机识别哪个端口容器运行非常重要。
-p in docker run命令用于公开端口。
语法:docker run -p host_ip:host_port:container_port image_name
例如,docker run -itd -p 192.168.134.122:1234:1500 image_name
这将容器的端口1500绑定到主机的192.168.134.122上的端口1234
使用Iptables查看网络进程 - iptables -L -n -t nat
Now the request send to host_ip (192.168.134.122) and port (1243) is redirect to container with ip (172.17.0.2) and port (1500).