docker访问外部主机的ip

假如在linux里面安装了一个docker,然后linux做了一个http接口,端口为80.
 
那么假如我部署了一个nginx容器在docker里面,那么我的nginx要如何反向代理到我的linux主机的80端口呢?
 
那么我们测试一下,加入nginx容器的名字为ng110,那么我们通过命令docker exec -it ng110 /bin/bash
进入容器内部。
 
然后我们尝试curl获取主机的80端口。
 
首先,curl http://127.0.0.1/
 
这样子是不通的,因为127.0.0.1是docker内部的回环地址。并不是外部linux的ip。
 
那么我们先在linux外部,运行命令:ifconfig

 
这里有一个docker的的字样的ip地址。 那么这个地址就是在docker看来的外部ip地址。
 
然后我们继续回到docker容器里面,curl http://172.17.0.1/
结果我们发现有返回数据了。
 
所以在外面的ifconfig的docker容器地址,就是主机相对容器的ip地址。
 
所以我的nginx配置文件应该这么写:
 

 
proxy_pass http://172.17.0.1:80

0 个评论

要回复文章请先登录注册