从容器中获取宿主机IP地址

背景:

docker 中的程序需要连接外部的程序,连接的过程中会告知外部程序自己的ip地址,然后外部的程序会回连docker中的程序。由于docker使用的是rancher中的托管模式,外部程序是没办法直接连接到容器中的,那么如何解决呢?

1、将主机/proc目录挂载到容器中

-v /proc:/hostip/:ro

2、运行docker的时候添加主机完全访问权限

--privileged

3、在容器中运行命令

# 获取网络信息需要指定--net
nsenter --mount=/hostip/1/ns/mnt --net=/hostip/1/ns/net ip a  
# 如果只是查看文件不需要指定--net
nsenter --mount=/hostip/1/ns/mnt ls /root

 

posted @ 2019-07-05 16:20  cptao  阅读(12967)  评论(2编辑  收藏  举报