①首先docker在第一次运行镜像生成容器时,记得映射端口的设置,假设为 -p 8000:80
- 宿主机端口8000映射到docker的80端口
- 此时的docker网络设置是【桥接模式】
②代理的时候,明确整个访问路径
- 客户端 ==> 宿主机 ==> docker中的nginx
- 此时访问nginx的并不是客户端,而是宿主机
- 所以nginx监听的server_name切记要填宿主机在docker桥接模式下的所分配到的ip,可以在宿主机输入 ip -a,找到以下网卡
docker内部可以通过该ip172.18.0.1
访问宿主机,即server_name应该是172.18.0.1
- 所以nginx监听的server_name切记要填宿主机在docker桥接模式下的所分配到的ip,可以在宿主机输入 ip -a,找到以下网卡
- 监听的端口应该是80,而非8000,因为我们在最开始完成了映射
③此时代理的目标服务器
- 如果在宿主机上,那么ip仍然是
172.18.0.1
- 如果在其他docker容器内,找到目标容器在桥接模式下分配到的ip